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