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