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