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