#######$$$$##$$#####$$#$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%==============?????>>>++++++))*;-----~~~~~-::-~-:*)))+>>>>>>>?>
##$$$$##$#####$####$$$$$$$$$$$$$$&$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%=============???????>>>>>>++++))!::;:----~^~-::~~~-!)))>>>>>>>>>>
$########$####$$$$#$$$$$$$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&%&%&%%%%%%%%%&$$$&%%%%%%============?????????>>>>>+++++)*:;!;------~~------!*)+>>>>>>>>>>
##########$####$$$$$$$$$$$$$$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$#$$$#$&&&&&&&&&&&&$$&&$$#$$$&%%%%%===========??????????>>>>>>++)*;::;:-~-:::--:;;!;:*)+>>>>>>>>>>>
##########$#$##$$$$$$$$$$$$$$$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$########$&&&&$$$$$$$$#$$##$$$$$&%%%%============??????????>>>>>+)!!;-:-~-~-----::;!!!*)+++>>>>>>>>>>
###########$###$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&$$######$#$$$&$###$$$######$$$$$$$$$$$%===========??????????>>>>+!;;;:--~~--------::;!*)++++>>>>>>>>>>
##$########$##$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&$#####$$&&&$$$$$#####$#######$$$$$$$$$$$&%%=======?==?????????>>>)!;--:-~^^~--~~~--:;;:;!)++++>>>>>>>>>>
###$#######$$#$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&&&&&&&&&&&&$$####$$&&&&$&$$##############$$&&&&&&&$&$$&%=======???????????>>+!!:~~~~^^^~^^^^^^-:;;:;!)++++>>>>>>>>>>
###########$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&$$#####$&&&&$$#################$$&%&%%%&&&&&$$&%======??????????>+)!;~~-~~^^^^,,,,^^-::::;*)+++++>>>>>>>>>
###########$$$$$$$$$$$$$$$$$$$$$$&&$$&$&&&&&&&&&&&&&&$$#####$&&&&$$##################$$$%%%%%%%=%%%%$&&%====??????????>>)!;:--~^^^,,,,,,^~-::;;!)++++++>>>>+>>>>
#########$#$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&%&&&&&&&&&$#####$$&&$$$$$##############$#$$$$$&%%%%&%%%===%%%%====??????????>>)*:;:-~~~^^,^^,^^~:;;!!*)++++++++++++>+>
#$$$$##$#$#$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$######$&$&&$$$###############$$$$&$$$&%&&&&&%%=%===%====??????????>>+*!!;::-~^~^^^,^~-::;**)+++++++++++++++>
###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&%&&&&&&&$#####$$$$$$$$###############$$&&&&&&&&&&&$$$&&%%====?===???????????>+)*!;:-~~~~-^,,,^~::!))+++++++++++++++++
##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$######$$$$$$$###############&&&&%%%%%&&&&&$$$$&&%====??=???????????>>+)*!!:-~~~~~^,,^^~-;)+++++++++++++++++++
##$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$########$#$$###############&&%&%%%%%%%&&&&&$$$$$&&%======???????????>+****!;--~~~,,^^~~-;++++++++++++++++++++
#$$$$$#$$&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$##########################$&&&%%&&&&&&%%%%%&$$$$$$&&&%===???????????>+)))*!;--~~^,^^--:;:*+++++++++++++++++++
#$$$$$$$$$&&&$&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$##########################&&&&&$&$&&%=??>??%%&$$$$$$&&%===??????????>+++))!;:-~^^,^~-::;:*+++++++++++++++++++
#$$$&$$$$&$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$#########################$$$&&$&&%%?>)*!!!*)>=%&$$$&&&&===??????????>>+)**!!--~^^^~--:;;:!+++++++++++++++++++
$$$$&$$$$&$$$$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$#########################$$$&&&%%=?+*!:-~~~-;*>=&&$$&&%%==??????????>>+))));::--^~~--:;:!!+++++++++++++++++++
#$$&&$$&&&$$$&&$$&%&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$#########################$$$&&%=?>+)*;:~^^^^~-;*+%&&&&%%==??????????>>)))))*!;::~~~---:;**+++++++++++++++++++
#$&&&$$&&&&$$$&$$$&%&&&$$$$$$$&&$&&&&&&&&&&&&&&&&&$########################$$$&&%=??>+)*;:~^,.,,^^:;+%&&%%%===?????????>++)+++)*!!;-~~::::!**+++++++++++++++)+++
$&&&&#$&&&&$$&&$$$$$%%&&&$$$&&&&&&&&&&&&&&&&&&&&&&$#########################$$&&%=?>>+)*;-~,.....,^-:>%%%%=%===????????>++)))))))!!;--;;;!*)))++++++++++++++)))+
$&&&&$$&&&&#$$&&$&$&$%=&&&&$&&&$&&&&&&&&&&&&&&&&&&$#########################$$$&==?>+))*;-~,.'''..,~-;=%%%%%====??????>>+)+)))+))!!;-:!!!!!*)++++++++++++++++)))
$%&%&#$&&&&#$$&&&$&&&$&=%&%&&&&&&&&&&&&&&&&&&&&&&&##########################$$&%=?>>+)*!;-~,.''''..,~-+%%%%%%====?????>++++)++++*;!;-:;;;;;)++++++++++++++++))))
#%%%$$$&&%&$$$&&&$&&&&&&%=&%&&&&&&&&&&&&&&&&&&&&&##########################$$$&%=?>+))*!:-^,.'''''..^~;%%%%=%====????>>>+>+++>>+)!;::-::;:;)+++++++++++++++)++)+
#%%=$$$%%%&$$$&&&&&&&&&&&%=%%&&&&&&&&&&&&&&&&&&&$##########################$$$&%=?>+**!;:-^,.''''''.,~-?%%%%%%===????>>>+>>+++++)*!;::::::!))+++++++++++++++))++
#%%=$$$%%%&$$$$&&%$&&&&&&&&=%%%&&&&&&&&&&&&&&&$$$##########################$$$&%=???>)*;-~^,.'''''''.~~>%%%%%%%=?????>>>>>++++++)!!;;;;!;!)))))+))++++++++++++++
#%%=$$#&%%%$$$$&%%&&&&&&&&&&%%%%&&&&&&&&&&&&&$$$##########################$$$$$&$$$&&%%=>!~,..''''''.^-*%==%%%%%?=??>>>>>>>++++)*!;!!!***))))))))))+++++++++++++
#&%%$$$&%%%$$$$&%%&&&&&&&&&&&%%%%&&&&&&&&&&&$$$$##########################$$$$$$&%==?=%&&%?):^..''''.,-!=%=%%%%=?=?>>>>>>>>+++))*!;!!*)))))))))))))+++++++++++++
#&=%$$$&%%%$$$$$%%%&%&&&&&&&&%%%%%&&&&&&&&&&&&$###########################$$###$$&%%=?=%&&&=>;^,.....^:;=%=%%%&=?=>?>>>>>>>>>++*!;;*)++))))))))))))+++++++++++++
$$%%##$$%%%$$$$$%%%&&%%&&&&&&&&%&&%&&&&&&&&&&$############################$#######$$&&%%%&&%=):~^,,~!+>==%=%%&&=?=>?>>>>>>>>>>+!;;!*)++)+))))))*)))+++++++++++++
$#&%#@@$&&%$$$$$&%%%&%%%%&%&&&&&&&%%&&&&&&&&$$############@@#############$$#########$&%&&&&%=+;-^~-)>???=%%%%&&=?=?>>>>>>>>>>>+)!;!*)+++++))))))))))++++++++++++
$$$%$#@@$%%$$$$$$%%%&%%%%%%&&&&&&&&%%&&&&&&&$############################$$$########$$&&$&&&=>;~^-*+>+)*>%%%%&%????>>>>>>>>>>>++)!!!)++++++)))+++))+++++++++++++
$$$&$$#@@#%+%$$$$%=%%%%%%%%%&&&&&&&&%%%&&&&&&$$##########################$$&&$#####$%&&$$&&&%>;,^;>?????>%%%&&%??????>>>>>>>>>++)**!)+++++++++++++++++++++++++++
##$&$$$#@@#&)>&$$&=%%%%%%%%%&&&%&&&&%&%&&&&&&&$##########################$&%%%%$$##$&%?%$%?==>:',+?>+?&%=%%%&&=?=????>>>>>>>>>++))*!)++++++++++++++++++++++++))+
#$$$$$$##@##%++%$$%=%%=%%%%%%&&&&&&&&&&%&&&&&&&$$########################$&%??>>?==%%=>)!!!>>+;.^>>=%$$&%%=%&&=?????>>>>>>>>>>+))*;!)++++++++++++++++++++++))))+
#$$$$$#$$#@##=+>%$&==%=%%%%%%&&&&&&&&&&&%&&&&&&&$########################$&%?>)*!;::-~~^^~:*))!^.)+>%&$$%=%%&&=?????>>>>>>>>>>>)*!!!)++))++++++++++++++++++)))))
$$$$$##$$#@@#$?+?&$====%%%%%%%&&&&&&&&&&&%&&&&&&&###########$#############$&=?+!:-~,,..,,^-!)+*~.~*>=&&%===&&%?????>>>>>>>>>>>>)*;;!))))+++++++++++++++++++++)))
$$$$##$$$$#@##%+>%$&==%%%%%%%%&&&&%&&&&%&&%&&&&&&###########$#############$$%=>);-^,....,^-!)++:..,:)???==%&&=?????>>>>>>>>>>>>>);;!!;*+++++++++++++++++++++))))
$$$$#$$$$$&@@#$??%$$==%%%%=%%=%&&&&&&&&&%&&%&&&&&############$#############$&%?>*;-^,...,^:*>>>!^.'.,-;??=%&&=?????>>>>>>>>>>>>>>);!;:;!)+++++++++++++++++++++++
##$#$$$$$$&#@@#%?%$$&?==&==%%=%&&&&%&&&&&%&&%&&&$####################$######$&%?+*:~^,..,^;+==?):^.'.,~>?=%%&?????>>>>>>>>>>>>>>>+!!!!::;*++++++++++++++++++++++
#$#$$$$$$$$&@@#$=%&$$==%%=%==%=%&&&&&&&&&&%%&%&&$$###################$######$$&=?+!:~^,,,~*?=%=>!^.''.^+?=&%%????>>>>>>>>>>>>>>>>+!!;;;-;!)+++++++++++++++++++++
$#$$$$$$$$$%@@##&=&$#$==%%==%===&&&&%&&%&&&%%%%&&$###################$#######$&%=>)!:~^,^~+==%%=+-..'.^+?=&%=?????>>>>>>>>>>>>>>>+)!!!;;!;!)++++++++++)+++++++++
###$$$$$$$$%#@##$%%$##==%&======%&&&&&&&%&&%%%%&&$$##################$#######$$&%?+*;-~^^-?&%&&&=+-.'.~>?%%%????>>>>>>>>>>>>>>>>>+);;;-;!*!*+++++++++))+++++++++
##$$$$$$$$$&$###$&%&$#&==%%======&&&&%&&%%%&%&%%&&$##################$#######$$&%=>+*;-~~:>&&$$&??-'.,-?%&%%???>>>>>>>>>>>>>>>>>+++!;;-*!***)++>++++++++++++++++
##$$$$$$$$$$&@##$$&&$#$==%&======%&&&&&&&%%%&%&%&&$###########################$&&=?>)!:--:!+??>++-.'.^*=%%%=????>?>>>>>>>>>>>>>>++++!:-****)+++>++++++++++++++++
##$#$$$$$$$$$@@##$%&$##&=%&%======&&&&&&&%%%%%%%&&$##########################$$&&%=>+*!;::;;!;^^,''',-=%%%==???????>>>>>>>>>>>>>>+++)-~!**)++>>>>+++++++++++++++
####$$$$$$$$$#@###$&$$##%%%&===?==%&&&%&&&=%%&%%&&$#########################$$$$&%=?>)*!!!!!!;:^^.'.~)=%%==????????>>>>>>>>>>>>>>>++*--;))+++>>>>>+++++++:~^-!++
#########$$$$$@@###$$$##$=%&%======&&&&&&&=%%%&%&&$#########################$$$&&%=??>+++>??>))!--,^:?%=%?=??????>>>>>>>>>>>>>>>>>>+)--;*+++>>>>>>>>>>>>!:-^*~+>
##########$$$$$@#####$$##=%%&===?==%&&&%&&%==%%%&&#########################$$$$&&%%=???=%%%==??>)!~~+==%??=??????>>>>>>>>>>>>>>>>>>++:~:!++>>>>>>>>>?=%%?>)+>)++
###$#$$$$$$$$$#@#####$&$#&%%&%%=?%?%&&&%&&&=%%%&&&##########################$$$&&%%%=??%&%==%&&%?+::====?=??????>>>>>>>>>>>>>>>>>>>>+!~:;)>>>>>>>?=%&&$$$=%%>+>>
$###$##$$$#$$$########$$#$%&&&%===?=&&&%%&&=%=%%&&##########################$$$$&&%%===?>>*:-:;!*>:+==%??=?????????>>>>>>>>>>>>>>>>>+*-:!)>>>>??%&$$$$$$$$=>>>>+
########$$$###$#@@#####$$#&&&&&%===?%&&&&&&%==%%&&######################$####$$$&&&%%==&&%=+;~~^^-:==%%????????>?>>>>>>>>>>>>>))>>>>+)::;+?=%&&&$$$$$$$&=>>>>>++
##########$$$###@@@####&&##&&&&&==%?%&&&%&&&===&%%####$##$#####$$#######$$$$##$$$&&%%===&$$%=+)!!-+?%%??????>????>>>>>>>>>>>>>>~-+>>+*;!+%&&$$$$$$$$&=>>>>>+++++
###$$############@@@####$$#$&&&&%==?%&&&%%&&=%%%%%####$$#$$#$$$$##########$$$$$$$$&&%=???%&&&&=):!?===?????????????>>>>>>>>>>>=),,!>++?%&$$$$$$$$&=?>>>>>>>>++++
####$$$$$$########@@#####&#$&&&&&?=?=&&&&&%%%&%=&%##$#&&$$$$$$$$$#########$$$$$$$$$&&%=>+*!;::-~->====???????????>>>>>>>>>>>>>==*~;>=&$$$$$$$$&%?>>>>>>>++>+++++
#$$#$$$$$$#$#$####@@#####$&#$&&&&====%&&&&%%%&%%&&##$$&&&#$&&&$&$##########$$$$$$$$$&&%=>)!:-^,^)====??????????????>?>>>>>>>>>?=>?%&$$$$$$$&=?>>>>>>>>>>>+++++++
$$$$#$&$$$$$$#$$$$@@@@###&%##$&&&&===%&%%&&%&%%%%$###$$$$$#&$$&&###########$$$$$&&&&$&&%=?+*!:-!==?==?????????????>>>>>>>>>>=%&%&&&&&$$$%=?>>>>>>>>>>>>>>>++++++
$$$$$$$&&$$$$$$$$$#@@@@##$&$#$&&&&=%%&&&%&&%&&%&%$###$$$$$##&%%&############$$$$&&&%%&&&&%=?>+)?==?=???????????????>?>>??=%+^~*%&&%%%=+))>>>>>>>>>>>>>>>>>++++++
$$$$$$$$&&$$$$$$$$$##@#####&#$&&&&%=%&%&%&&%&&%%&$##$$$$$&&$&%%&############$$$$&&%=?>>=%%%%=====??=?????????????>?>>?>=&$$$?^..~;>&&=!^!%>>>>>>>>>>>>>>>>>++>>+
$$$$$&$$$&&$$$$$$$$$#@@#@##$&#$&&&&%%&&&%&&%&&%%&$#$&%%%%%%%$%%$############$$$&%%=>+**?=====?===?==?????????????????>>&$$$$&>:^...-?%++=?>>>>>>>>>>>>>>>++++>>>
#$$&$$&$$$&&$$$$$$$$$#@@@###%$#&&&&%%&&%%%&%&&%%$&#$&%%%%%%%&&&############$$$&%%?>+*!!>====????=?=???????????????????>=$$$&===>*:^..-=&%=>>>>>>>>>>>>>>++++>>>>
#$&$$&&&$$$&$$$$$$$$$$@@@@@##%#$$&&&&&&%&&&%&&%%$$#&&%%%%%%%%&$###########$$$&&%?>+*!;;+%=??????=?=?????????????????????=%=?????&%>;^'.*%?>>>>>>>>>>>>>>>+>>>>>>
#$&&&$&&$$#$$$$$$$$$$$#@@@@@#&&#$&&&&&&&&&&%&%%%$$$&&&%%%%%%%$##########$$$$&%%?>+*!;:;*===?????==??????????????????????=&%==??=#$%>*-.'^>?>>>>>>>>>>>>>>>>>>>>>
$#$&&&&&&$$$$$$$$$$$$$$#@##@#$%#&&&&&&&&&&&%%%%%$$&&%&%%%%%&##########$$$$$&%=?>+*!;:::;>===????==??????????????????????=&&&%=?&###&?):,'^%>>>>>>>>>>>>>>>>>>>>>
$$$&&&$%$&$$$$$$$$$$$$$##@@@@#&$$&&&&&&&&&&%%%%%$$&&%&%%%%%###########$$$&&%=?>+*!;::-::*=%%==??==??????????????????????=$&&&=?&####$%>;,:=?>>>>>>>>>>>>>>>>>>>>
###&&&$$&$$$$$$$$$$$$&$$#@#@@#$&#&&&&&&&&%&%%%%%$&%&%%&%%%$########$$$$$&&%=?>+)!;;:---:!))+&%??==??????????????????????=$$&&==&=)::;*)?>===>>>>>>>>>>>>>>>>>>>>
###$$&&#&$$$$$$$$$$$$$$$$#@@@@#$$$&&&&&&&&%%%%%&&&%%%%&%&########$$$$$$&&%=?>+)*;;:-----*:*!=$%%%==?????????????????????=$&)!-^--^'````'''.+?>>>>>>>>>>>>>>>>>>>
####$&&$$$$$$$$$$$$$$$$$$##@@@@#%#$&&&&&&%%%%%&$%%%%%%&$#######$$$$&&$$&%%=?>)*!;::---~~)~-)?$&&&&%======%%%???????????%&$$=);:;!:;;-^'`'''^=?>>>>>>>>>>>>>>>>>>
####$$&#$&#$$$$$$$$$$$$$$$@@@@@#&##$&&&&&&%%%%$&%%%%%$$$$$$###$$$&&&&&&&%=?>+*!;::--~~~;:~-;?&$&&&$%?=====??==?????????$####&%%%%+^,-;;;:~^:%?>>>>>>>>>>>>>>>>>>
#####$$$#$$$$$$$$$$$&$$$$&$@@#@#####&&&&%%%%&&&&&$$$$$$&&&&$$##$&&%%%%%%=?>+)!;::--~~^~)~~-:+&$&&&$$%????????=%)!)>???=####$$$#$$$>-,..',;=&%??>>>>>>>>>>>>>?>>>
#####$$#$$#$$$&$$$&&$$$$&$$#@@######$$&&&&&&$$#####$&&&%%%%&&&$#&%%%%%==?>+*!;;:--~^^~*:---;)=&$&&&#$=??>>>>>>==;~-;+?%#####$$#$$#$%>*:~.',*==?>>>>>>>?>>>>>?>>>
######$$#$$#$$$$&$$$$$$$$$$###@@######$$$$##########&%%%%%%%%%&$$&%====?>+*!;::--~~~~!;:::;;;:>$&&&$#&?>????>>>=+~^~~:$#####$########$&=)-.'':&&>>>>>>>?>>>>>?>>
########$$$$$$$&$$$$$$&$$$$#@#@@@#####$$####$$$#####&===========%&&%???>+*:-------::;:----~~~^*$&&&&##%?>????>>>=;^^^-##################$=)~.'!%??>>>>>>?>>>>?>>
######$##$$$$$$$$$$$$$###$&$@@@@#$%%&##$$$$$$$$$$$##$=============%%&=?>*;-^^^~-;!!*-^~~^^^,,,*$&&&&$##=?????>>>=+^,,,####################$%+*?&=???>>>>>=?>>??>
#######$###$$$$&&$&&######%&###&=?>>>&#$$$$$$&$$$$$#$%?????>>>?>??>>>?=>*:~^^~-;!*+!^^,,,,,,,^>$&&&&&##$???>>>>>>?-..~########################$&==????????=>????
#########$##$$$&$&&$###$$$$%$$%=?>++)?#$&$$$&&&&$$$##%=??>++))**)*!!!!*>=*~^^~-;!)*-~^,,,,,,,~=#&%&&&###&?>>>>>++?*..-########################$$%=????????=?????
#######$$#$$#$$$&$$$#&$#$$#$$%=?++)**)$$&&&&&&&&&&$$#&&%=?>+)***!;;;;;;;*+?;~~::**--^^,,,,,,^-%#&%&&&$###=?>>+++)*?^.*########################$$%=????????==??=?
#########$$$$#$$&$$$#@$#$##$&%=>+)*!!!?#&&&&&&&&&&&$#%&&&%=>++)*!;;;;;;;;::*++>+*-~~^^,,,,,,^!&#$%&%&&###$?>>+++);>-.)########################$$%???=??????=??=?
######$##$$$$$$$&$$$#@#####$&%=>+**!;;)$&%&&&%&&&&&&$%&&&%=?>+)**!!;;;;;;:-~-)=>!-~~^^^^^^^^-+$#$%&%&&$###&?>>++)!**.*#######################$&%%%=??==????%??=?
#######$$$$$$$$$&$$&$@#&###$&=?>+*!;::;&$=&&&%%%%%%&$%%%%==?>+)*!!!!!;;;::-~~)>>:~~^^^^^^^~~:?$$$%&%%&&####=>>>>++;>,*####################$$$##$%=%=??=????%??=?
########$&$$$$$$$&&$$###$@#$&%?>+*!;:--?$?&&&%=%%=%&$%%???>>))*!!;;;;;;;::--~~!=+~~^^^^~~~~-!%$$&%&%%&&$####?>>=++*?^*##################$##&%%%&=?=%=??=???%=?=?
#########$$&$$$$$&$$$####@#$&%?>+*!;:--+#?&&%%%%===%$%=>++))**!!;;;;;;;:::---~-)>-~~~~~~---:)&$$%%%%%%$$####$+>?>%>=^:#############$$####$$$$%=%???=%=??=??==?=?
##########$$&$$$$&$###@@@@#$&%=>+)!;:--!#?%$&&%====%&%=>)))*!!!;;;;;;;;:::--~~~~~^^~~~~---:;>$$$%%%%%%=&$####%?>+?=%~!#############$$$#####$$&%%%%===%=?==?==???
##########$#$$$$$&$#@@@@@##$&%=?+)!;:--;#=%$&&%%===%&=%>))**!!;;;;;;;;::::--~~^^^^^~~~----:*=$$&%%%%%%?=&#####%=++==%&#############$$$$$##$##$====%%=%%=?=?=====
#######$$$$$$$$$$$$#@@@#@@#$&%=?+)!;:--;$%?$%%%%%%%%$?%?)***!!!;;;;;:::::---~~^^^^^~~~---:;)%$$%%%%%%&+>=$####$&??====###########$##$$$$$$$$&%====?=%=%%?=??===%
#########$$$$$$$$$&$@@@@@@#$&%=?>)*;:--;$&>$&%%%%%%%$>%?)***!!!!;;;;::::---~~~^^^^^~~--::;!>$$&=%%%%%%+>?%$####$&$%%)=############$$#$#$$$&%=%&&=???=%%%===?====
#######$$#$$$$$$$$$$@@@#@@#$&%=?>)*;:--:&$>$&&&&&&&&$>=?+****!!!;;;::::---~~~^^^^^^~~-::;!)=$$%====%%=++>=&#####$#&&&##############$$$$#$%=%====%%=??=%%=?====%%
############$$$$$$$$#@@@@@#$&%=?>)*!;:-:%#>$$&&&&&&&#?=>+!****!!!;;;::---~~~~^^^,,^~-:;;!*+%$$=====%%?++>?%$$#####&&###############$$$$&%==========???%=%?==%%==
##########$$$$$$$$&$#@@#@@#$$&=?>)*!;:::=#?$$&$&$$$&#?=>+*!****!!;;:::---~~~^^^,,,^~-:;!*)?$$$======%>++>?=&&$####$################$$$$&============??=%=?===%%&
###########$$$$$$$&$$#@@@@##$&=?>+*!;:::>#%&$$&>?$$&$????+*!***!!;;;::--~~~~^^^,,,,^-;!*+>%$$%??=====+)++>?&&$#$###############$$####$%%=============?==%==%%%==
############$$#$$$$$$#@##@##$&=?>+)!;:::)#&&##$%~%$$&%??>?)!!***!!;;::--~~~~^^^^,,^^-!)+>=&$$=???===?))++>?%%$##################$$$$$&%=============%=====%===%&
#############$$#$$$$$#@@@@##$&=?>+)!;:::!$$&##$&*%$$%%??+>?);***!!;;::---~~~^^^^^^^^-!)>?%$&$>????==>)))++==%&################$$$$$$$&%%========&%===%=====%&&%%
############$$$$$$$$#####@##$&%=>+)!!;::;%#$###&&#$#&&?=))=>)!***!!;;::--~~~^^^^^^^^-*+?=&$&%>>????=+))))+==%&$###$%=#########&$$$$$$%%%%%=======%&%==%==%%%====
######################@@@@##$&%=?+)*!;:::>#$######$#&&==+>+>>)!!*!!;;::---~~~^^^^^^~-*>=&$$&?>>>???=))*))>??=&$####&>$########$$&&&&&&&&&%%??======%%==%%==%%&&&
###############$####@@@##@##$&%=?>)*!;:::*$#########&%%=?>+)?>)!!!!;;;::--~~~^^^^^~~-)?%&$&$>>>>>>??)**)>>>?=%&$###$%##########&&%%%&&%%%%%%==%&%===%%=%%%&&&%%%
############$$#$$#@@@@@@@#@#$&%=?>)*!;;:;*&#########$=&%=>+++??+!;!!;;::--~~~~^^^~~-:*?%&$&%++>>>>?>*)+++>>??=%$####$##########$&%%%%%&&&%%%%===&&===%%%&%%%%%%%
#############$$$##@@@@@@@@@#$&%=?>+)!!;;;)%#########$%&%=??>>+>=>)!;;;::---~~~^^^~~-:)=&$$$?++++>>>+++++>>>>??=%$###$###########&%%%%%&%%&&&%===%%&%==%%%%&&&&&&
##########$$#####$#@@@@@@@@##$&%?>+)*!;;*+&#########&&&%%=?+)))+??+)!;:::--~~~^^^^~-;)=&$&$++++++>>++>>>>>>>>?==&$##############&%%%%=%%%%%%&&=?=%%&%%%%&&&&&%%&
################$###@#@@@@@##$&%=?+)*!!!)?$#########&$&%====>+++++>>+)!;:-~~~~^^^^~~:+=$$&&))+++++>+>+++>>>>>>?==&##############$&%%%=&&&%%%&%$%=%%%&%&&%&%&&&&&
##################$#@@@@@@@##$&%=?>+*!!!+=$#########$$&$$&=?>)))))))>>+))!!;--~~^^^~:+%$$$?))+++++>++++++++>>>>?=%$##=?&#########&&&&&%%&&%%&=%$&=%%%&&&&$&&&&&&
###############$##$$@#@@@@@##$&%=?>+)*!*>%$#@@#@####$$$&%=??>+))))))*))+)+)!!!!;!;::::;!>$+))))+++>>++++++++++>>?=&$#%!~>#########$&&&%%%&&%==%&&&%%%&&&&&&&&&&&
###############$#$$$#@@@@@@##$&&%?>+)***>&$###@####&=???>>>>>++))))********)))****!!!!!*?&))))+++++++++++++++++>>?%$#$*~?#########$&&&&%%%%&&%=&&&&%&$&&&&&&&&&&
##################$$##@@@#@@##$&%=>+)***>$$####@#######$&&=?>+++))))********!!!!!!**)))>$=)))++++>++++++++++++++>>=&##)~$########$&&%%&&=%%%&&&&&&&%&$$$&&&&&&&&
###############$$#####@@@#@@##$&%=?++***+%#######@#####$$&%=?>>++)))*)*****!!!!!!!!!!!*?#>+++++++>+++++++++++++++>?%$#+!$##$$$&%==%%%&&&=?%%%&&&$&&&$&$$&$$&&&&&
###############$$#####@@@@@@##$&%=?>+)**+=$###########$$&&&=??>>++))))*****!!!!!!!!!!!)%$++>++>>>>+++++++++++))+++>=$#>>##$$&%?+*;::=&&&&=%=%&&$$&&$&&&$&&&&&&&&
################$#####@@@@@###$&%=?>+))*)?&$#####$#####$$&%%=??>+++))))*****!*!!!!!!!*+$&+>>>>>??+++++++++)+)))+++>=&#>&##$&%=>);---=$&&&%%%%&$&$&&&&&$$$&&&&&&%
####################$#@@@##@##$&%=?>+))))>&$#####?######$$&%%=?>>>+++)))****!!!!!!!!!*?#=>?>>>???+++++++++++++)+++>?&#?$#$$&%?+*:---=&&$$&%%&&&&$&&&$&&&$&&&&&&&
####################$#@##@#@###$&%=>+))))>&$#############$&&%==??>>++)))******!*!!!!*)&#??????==?++>+++++++++++))++?&#=#$$$&=>)!:---=&&&&$&&&$$$$&&&&&$&&&&&&$$&
###################$$$#@@@@@@#$$&%=?>+))+?$####@#########$$&&%==??>>++))))*****!*!*!*>$$?==?==%%>+++++++++++++++++>?&$&#$$&%=>)!:---=&&$&&$$$&$$&$$$&&&&&&&$$$$$
#######################@@@#@###$&%=?>+))+>&####@#@########$$&%%=???>>++))))*********)=#&=====%%%++>++>+>>>+>++++++>=&%$#$$&%?>*;:---=&$&&&&$&$$$&$$$$$$$&$$$$$$$
#######################@@@#@###$&%=?>++++>%######@########$$$&&%=??>>>++))))*)*****)+&#%%%%%%%&=+>>>>>>>>>>>>>+++>>=$%##$$&%?+*;:--~?&&&&&&&$$$$$$$$$$$$$$$$&$&&
######################$@@@#@@##$&%=?>>+++>%######@#@#######$$&&%==???>+++++)))))**))>$#%%%%%&&&>++>>>>>>>>>>>>>>>>?%$&##$$&=?+*;:-~~?&&&&&&&&$$&$$$$$$$$&&&&&&&&
######################$#@@#@@##$&%==?>++>>=$##@####@########$$&%%==??>>>++)+)))))))+=#$&&&&&&&&+>>>>?????????>>>>?=$&###$$$&?)!;:-)-&$$$$$$$$$$&$$$$$&$$&&&&$&$&
######################$#@@@@@##$&%==?>>>>>=&#@@##@#@########$$$&%%==??>>>>++++++)++>&#$&&&&&$$%>>>??????=????????=&$$###$$&%==?+*);,=&$$$$$$$$&$$$$$$$$$$$&$&&&&
######################$##@@@###$&%%=?>>>>?=&###@#@#@#########$$&&%%%=???>>>+>+++++>?##$$&&&$$$?>>????============%$$$###$&%=>)*!>!^^%$$$$$$$$$$$$$$$$$$&$&$&&&&$
######################$##@@@@##$&%%=??>>>?=&###@@#############$$&&%%===??>>>>>>>>>>&##$$$$$$$$>???=======%%%===%%$#$###$$&%?>)!!+!~~&$$$$$$$$$$$$$$$$$$$$$$$&&&&
#########################@@@@##$&%%=??>>??=&$#@@@@##@##########$$&&%%%==?????>>>>?=##$$$$$$$$&??====%%%%%%%%%%%&$######$$&%?>)*!*!--&$$$$$$$$$$$$$$$$$$$$&&%$&$&
###########################@###$&%%==?????=%$#@@@@##@##########$$$&&%%%===???????=$####$#####%==%%%%%%%%%%%%%%&$#######$$&%?>)!!):-:&$$$$$$$$$$$$$$$$$$$$&$&$&$$
##########################@@@##$&&%==?????=%$###@@###@###########$$&&&%%%========&##########$%%%%%%%%%%%%%%%%&$#######$$$&%?>)!!!:::&$$$$$$$$$$$$$$$$$$$&$$$$$$&
######################@@@@#@###$&&%==?????=%&#@@@@@##@@##########$$$&&&&%%%%=%%%&###########&&%%%%%%%%%%%%%%%&########$$&&=?>)*!;;:;$&$$$$$$$$$$$$$$$$$$$$$$$$$$
######################@#@@@@###$&&%%=?????=%&$#@@@@##@@@##########$$$$&&&%%%%%&&############%%%%%%%%%%%%%%%%&$########$$&%=?>)*!;;;!&$$$&$$$$$$$$$$$$$$$$$$$$$$$
#######################@@@@@@##$$&%%=??????=%&###@@@#@############$$$$$&&&&&&&$############&%=============%%&#########$$&%=?>)*!;;;*$$$$$$$$$$$$$$$$$$$$$$$$$$$$
######################@@@@@@@##$$&%%==?????=%&$#@@@@##@@@@#########$$$$$&&&&&$#############==????????=====%&$@########$$&%=?>+*!!!;)$$$$$$$$$$$$$$$$$$$$$$$$$$$$
######################@@@@@@@##$$&&%==??????=%&###@@@###############$$$$&&&$$##@@#########&????????????===%&#@########$$&%=?>+)*!!!+$$$$$$$$$$$$$&$$$$$$$$$$$$$$
#######################@@@@@@###$&&%==??????==%$#@@@@###@@@@#########$$$&&$$######$%%&$###????>?????????==%$#########$$$&%=?>+)**!!>$$$$$$$$$#$$$$$$$$$$$$$$$$$$
#######################@@@@@@###$$&%%=???>>??=%&##@@######@##@######$$$$&$$$#######$&&%==%?>>>>>>>>>>???==&##########$$$&%=?>+))***=$$$$$$$###$$$$$$$$$$$$$$$$$$
#######################@@@@@@###$$&%%==??>>>??=%$##@##@######@######$$$$$$$$#####$$$$$$$&$=>>>>>>>>>>>??=%$##########$$$&%=?>+))***%$$$$$$$$$$$$$$$$&$$$$$$$$$&$
#######################@#@@@@###$$&%%==?>>>>>??=&$#@##################$$&&&$#######$$&&$$$?>>>>>>>>>>>??=%$##########$$$&%=?>>+))))$$$$$$$$$$$$$$&$$$$$$$$$$$$$$
########################@@@@@@##$$&&%==?>>>>>>??%&#@@##@###$$#@#@#####$$$$$$###$#####$$$#%>>>>>>>>>>>>??=&###########$$$&%=?>>+)))>$$$$$$$$$$$$$$$$$$$$&$$$&$$$&
##########################@@@@###$&&%==?>>>++>>?=%$@@@####$=#@@#####$$$$$$##############$?>>>>>>>>>>>>?=%$###########$$$&%=??>++))=$$$$$$$$$$$$$$$$$$$$&$$&$$$$&
###########################@@@###$$&%==??>>+++>>?%&#@@######@@@###@@##$$$$##########$$$$%?>>>>>>>>>>>??=%############$$$&%==?>++++$$$$$$$$$$&$$$$$$$$$$$$&$$$$&&
###########################@@@@##$$&&%=??>+++++>?=&#@####@@@$#@########$$##############%?>>>>>>>>>>>>?=%$############$$&&%==?>>++?$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$