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