~~~~~~~~~~~~~~~~*^*^*^*^~*~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********

~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~*^*^*^*^*^~*~~~~~~~~~~~~~~~*^**~~~~~~~~~~~*^*^^*^**~~~~~~~~~~*^*^**^*^**^~~~~~~^^^^^^^^*********

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^v~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~~~~~~~~*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^*^**^*******^^^^^^^^^^^^^~~~~~~~~~~~~~^^^^^^^^^^^^^^^****^^^~~~~~~~~~~~~~~~~~****^^^^^****^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^*^*^*^*^*^*^*^**^^*^*^*^*^*^~~~~~~~~~~~~~~~~~~~~