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