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