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