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