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