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