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