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