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