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