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