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