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