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