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