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