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