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