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