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