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