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