__^^^##########################^^^
^^#####^^^^^^^^^^^^^^^^^^#####^^
^####^^^^^^^^^^^^^^^^^^^^^^####^
####^^^^^^^^^^^^^^^^^^^^^^^^####
###^^^^^####^^^^^^^^####^^^^^###
##^^^^^######^^^^^^######^^^^^##
##^^^^^######^^^^^^######^^^^^##
##^^^^^^####^^^^^^^^####^^^^^^##
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#
#^^^^###^^^^^^^^^^^^^^^###^^^^^#
##^^^###^^^^^^^^^^^^^^^###^^^^##
##^^^^###^^^^^^^^^^^^^###^^^^^##
##^^^^^###^^^^^^^^^^^###^^^^^^##
###^^^^^###############^^^^^^###
####^^^^^#############^^^^^^####
^####^^^^^^^^^^^^^^^^^^^^^^####^
^^####^^^^^^^^^^^^^^^^^^^^####^^
^^^##########################^^^