^^^^^^^^^^############## ##^^^^^^^^^^^^
^^^^^^^^################ #####^^^^^^^^^^
^^^^^^#######^^^^^^^^^^^ ^######^^^^^^^^
^^^^^#####^^^^^^^^^^^^^^ ^^^######^^^^^^
^^^^####^^^^^^^^^^^^^^^^ ^^^^^#####^^^^^
^^^####^^^^^^^^^^^^^^^^^ ^^^^^^#####^^^^
^^####^^^^^####^^^^^^^^# ###^^^^^###^^^^
^^###^^^^^######^^^^^^## ###^^^^^####^^^
^####^^^^^######^^^^^^## ###^^^^^^###^^^
^###^^^^^^^####^^^^^^^## ##^^^^^^^^####^^
^###^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^###^^
^###^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^###^^
^###^^^^##^^^^^^^^^^^^^^ ^^^##^^^^^###^^
^###^^^^###^^^^^^^^^^^^^ ^^^##^^^^####^^
^####^^^^###^^^^^^^^^^^^ ^^###^^^^###^^^
^^###^^^^####^^^^^^^^^^^ ####^^^^####^^^
^^####^^^^######^^^^^### ###^^^^^###^^^^
^^^####^^^^############# ##^^^^#####^^^^
^^^^####^^^^^########### ^^^^^#####^^^^^
^^^^^#####^^^^^^^^^^^^^^ ^^^######^^^^^^
^^^^^^#######^^^^^^^^^^^ ^######^^^^^^^^
^^^^^^^^################ #####^^^^^^^^^^
^^^^^^^^^^############## ###^^^^^^^^^