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