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