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