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