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