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