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