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