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