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