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