^^^^^^^^"""""""""&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&^^^^^^^^^^^^&
^^^^^^^"""""""""""&&&&&&&&&&&&&&&&&&"&&&&&&"&&&""&&&&&&^^O^^^^^^&&&
^^^^^""""""""""""&""&&&&&&&&&&&&&&&&&"&&&"&&"&"&&"&&&&&".."&^^^&&&&
^^^I..."""""""""&"&"&&&"&&&&&&&&&"&&""&&"&""&"&&&""&""&..&&&&&&&&&&
^^""""...""""""""""""""""""&""&&&&"""&&&&&&&""&""""""&"..&&&&&&&"&&
"""""""...""""""""""""""""""""""""""""&&&&&"&&&&&&&"&&"&..&&&&&&&"&
""""""""&.""#####"#####""""&"""""""""""&&&"""&&&&"&""&&..&&&&&&""&&
""""""""".."#####"#####"#####"""""""""""&&&"&"&&"&&"&""."&"&&&"&&&&
""&"""###"."##D##"##T##"#####"&""""""""""&&"&&"&"&""&"..&"&&&"&"&&&
""""""##S.............""##B##"""""""""""&"&&""""&"&"&.."&&&"&""&&&&
"""&""###""""......_.........""""""""""&"&"&""&""&""..""&&"&"&&&&&&
"&""""""""""""~~~~...................................&"&"&"&&&"&&&&
"&""~~~~~~~""~~~~~~~""&#L#"##M##""""""&"""""&"&&&""".""&""&""&"&&"&
""&""~~~~~~~~~~~~~~~~""###"#####"""""&""&&"""&&"&&"#H#"&&"&&&"&"&&"
"""""&"""~~""~~~~~~~~"&###""""""""""&&&"&&"&""&&&""###&""&"&"&"&&&"
""&"""""&""&"""~~~~"""""&"""""""""""""&&&"&""&"""&"""&"&"&"&&&"&&""
"&"""""""""""""""""""""""""""""""""""&"""&"&&"&"&"&&"""&&&""&&&""&&

###################################################################
#           #  m        #                 #     #     #     #   m #
#           +           +  m                       m        + m   #
###+##########################################  #     #     ###+###
#          o#                 #m    #      # ################ m  m#
#     ####### ######## ############ + #### #                #     #
# mmm #m#   # # !# m # #            # #### # ############ # ###+###
#     #m# # # ## #   # # ############ #### # #o  #      # # #m    #
#  m  # # # # ## #o  # # #    o     + #### # # m +    # #m# # mmm #
#     # #m# #    #   # # #   m m    # #    # #   #    # #o# # !mm #
###+### ### #######+## # ############ ###### ########## ### #######
#                    #             m#        #     mmmmm       mmm#
###+###########################################################+###
#  m  #mmmmm#     #     #     #    o#     #     #     #     #     #
#      mm!mm    m       +           +                 +     +m    #
#     #mmmmm#     #     #     #     #     #    m#     #     #     #
###################################################################

###################################################################
#mm m                   +  #                m  #              #o  #
############# ######### # ## ### ##### ## #### ###### ####### ### #
#m# #!# #   #       mo# # #o   #    #   # # o# #      #           #
# # #m#  m  #   ####### # #    #    #   # #  # #      #       #####
# # mm# #####   #     # # #### #    ## ## ## # ###### ####### #   #
# o mm+ #   +   #   m + # #  # #m##### ## ## # #m #m# #mm#  # ### #
####### ####### ###   # # #    # #      # +  # +  +   #!m+m #     #
#o                #   # # #### # ###### # ## # #m #   #mm#    #####
### #######################o!# # #    ######################  #   #
#   mmm       #   m       #mm# ###    #   o mm  m          #m ### #
#             #           #  # ###    #################### #  #   #
#                              ###                                #
################################################################# #
#o                        +    ###    #          #            #   #
#  m                      #            #                   #  +   #
###################################################################

###################################################################
#  mm                                                             #
# ############## ############################################## # #
#         #    # #                                #     mm    # # #
#         #+## # # ############+################# ########### # # #
######### #o # # # #o    +    # # !  #          # #         # # # #
#       # #  # # # #   ### #  # #    +   o      # # ####### # # # #
#  !mmm # #### # # #   #!# #  # ######      mm  #m# #     # # # # #
#  mmmm #      # # # ###m# #  # #    #########+#### # ### # # # # #
#  mmmm ######## # # +   # #o # #mm  #       mmm#m# # #m# # # # # #
#       #        # ###   # #### #mo  +   o      #m# #m#m# # # # # #
#####++## ######## #     #    + +m   #          # # #mmm# # # # # #
# #   mm# #    # # ############################## # ##### # # # # #
# mmmmmm# #  #   #                                #       # # # # #
# ####### ###### ################################ ######### # ### #
#               m+m                                         #     #
###################################################################

###################################################################
#                  ##  !     ##            ###                ##  #
#  #####            ## mmo  ##            ##m##              ##   #
#  # ! ##            ## m  ##            ##  m##    mm      ##    #
#  #mmmm######        ##  ##            ##  m  ##          ##     #
#  # o  #    ##        ##+#            ##  m !  ##        ##      #
#  #####+     ####### ###mmmmmmmm     ## mmm     ##      ##       #
#  #    #     ##        ##   mmmm    ##  m        ##    ##        #
#  #m   ########         ##         ##   m     o  ####+####   o   #
#  #mo  #mmm## ##   mmm   ##         ##  mmmmmm  ##       ##      #
#  #m   #mm##   ##         #########  ##    mmm ##   ###   ## mm  #
#  #mm  #m##     ## ## o  ##  m  ####  ##      ##   #####   ##    #
#  #####+##          ##  ##     ######  ##    ##   #######   ##   #
#  +  om##            ####     ########  ##++##    ########   #+  #
#  ######   mmm        ##     ##########                       ## #
####                                                 m     m    ###
###################################################################

###################################################################
#                                                                 #
#     ####m########################################## ## ##########
#     #      #m#m#m#                   #mm #m   #           #     #
#######    # # # # #       #####       #!  #    ########### # ### #
#     #    # # # # #      ##mmm##      #   #    #         # # #o# #
# mmo +    # # # # #     ## m   ##     ####+#####  mm ### #   # # #
#     #    #       #    ##m   ! m##    #   #    ###   # # ##### # #
############ # # # #   ##  m m   m##   #mmm# mm #m#   # #       # #
#  mm     m# # # # #   ##     o   ##   #   #    +m+   # ######### #
#      m   + # # # #    ##mmmmmmm##    ####+#####m#   #           #
#   o m    # # # # #     ##     ##     # m #    ###   ########### #
############ #m#m# #      ###+###      # m #mmmm#               # #
#            # #o# +               mm  #  m#  ! ###mmmm##  ##o### #
####   ########################################## ######    ###   #
#         m                                                       #
###################################################################

###################################################################
#                                                                 #
#                        ###########################+#######  ##  #
#  #######################                    # ##mmmmmm ##   ##  #
#                        ########+######  #   # !##mmmm ##    ##  #
#   ############    ##  ##    mmm      #  #   #mmm## ! ## ######  #
#   #          #    #    # mmmmmm      #  #   # mm #####      ##  #
#   #    o mm  #    #    #  !###########  #   #  m  ######### ##  #
#   #####  #####    #    #   #            #   #mmm   ##       ##  #
#       #  #        ##########  ########  ########++####  ######  #
#       #  #  mmmm  #        #  #             #     #  ##     ##  #
#   #####  #        #    mmmm#  #  #########  #     #   ##### ##  #
#   #o    ######+##########mm#  #  #########  #  o  #mm  ##   ##  #
#   #####  #                 #  #             #mmm  #mmmmm##      #
#       #  ###################  ###############mmm  ####   # ######
#       #                                                         #
###################################################################

###################################################################
#                                                                 #
########### #####      #####     #####+####    #####       ###### #
#mm       # #omm+ ######   ##    # ##     #   ## mm##    ### #### #
#  #### ### ##### #         ##   #  ##### #  ## ### ##   #   #    #
#  #  # #       # # ##### #  ##  #      # ####  # #mm##### o ###  #
#  #m # ####### ### #m!m# #   ########  #       # #!m   mmmm   #  #
#  #  #       #     #mmm# #          #  ######### ##############  #
#  #  ######  #######   # ###   ###  #       mm                #  #
#  #       #          o # #o#####!#  # #      ####  ## ####    #  #
#  ######  #   ########## #mm mmmm#  # ########  #  #  #  ##   ## #
#     om#  #####          ####mmm##  #    m  m#  #mm#  #   ##   # #
#    ####        ######      #m###   #####m####  ####  ###  ##  # #
#    #o    #######mmmm####   mmmmmm      #m#       m     #   ## # #
#    #######             ##### ###########m###############    ### #
#                                         m                       #
###################################################################

###################################################################
#   #     #o   m      #   # # # # # #   #                         #
# # #     #####m##### # # # # # # # # # # ###########+########### #
# # #####     # # ### # # # # # # # # # ###     #mmmm    #  #   # #
# #     #     #       # # # # # # # # # #       #m!m omm #m##m# # #
# # m o #     # ####### # # # # # # # # #       ########## ## #   #
#m#######     #         #       +     #        m              # # #
#m     o#     ################################################### #
#   #####     +m                                             m    #
#  #         ###  ###+### ### ### ###+### ### ### ###+### ###m### #
#  # ######  ### m#    m# #m    # #     # #     # #     # # m   # #
#  ### # o#  ### m#m o m# #     # #mmmo # # mm  # #  omm# # m   # #
#      #  #  ###  #m ! m# #     # #     # #     # # mm m# #     # #
#m######  #  ###  #     # #mmmmm# #     # #     # #   ! # #     # #
# #      #######  ####### ####### ####### ####### ####### ####### #
# # mmm                                       mm                  #
###################################################################

###################################################################
#           #  m        #     ###         #     #     #     #   m #
#           +           +  m        #              m        + m   #
############################################### #     #     ###+###
#          o#                 #m    #      # ################ m  m#
#     #######+######## ############ # #### #                #     #
# mmm #m    # #!   m # #            # #oo# # ############ #####+###
#     #m# # # ## #   # # ############ #oo# # #!  #      # # #m    #
#  m  # #o# # ## #o  # # #    o     + ## # # # m + #### #m# # mmm #
#     # #o# #    #   # # #   m m    # #    # #   #    # #o# # omo #
###+### ### ####### ## # ############ ###### ########## ### ###+###
#                    #             m               mmmmm       mmm#
#####################################           ###############+###
#  m  #mmmmm#     #     #     #    o#           #     #     #     #
#      mm!mm    m       +        m  +                 +     +m    #
#     #mmmmm#     #     #     #     #          m#     #     #     #
###################################################################

###################################################################
#mm m       #           +                   m                 #o  #
### ######### ######### # ## ### ##### ## ########### ####### ### #
#m# #   #   #       mo# # #o   #    #   # # o# #      #           #
# # #m#  m  #   ####### # #    #    #   # #  # #      #       #####
# # mm#######   #     # # #### #    ## ## ##!# ###### ####### #   #
# o mm+ #   +   #   m + # #  # #m##### ## ## # #m #m# #mm#  # ### #
####### ####### ###   # # #    # #      # +  # +  +   #mm+  #     #
#o                #   # # #### # ###### # ## # #m #   #mm#    #####
### #######################o!# # #    ######################  #   #
#   mmm       #   m       #mm# ###    #   o mm  m          #m ### #
#             #           #  # #o#    #################### #  #   #
#                         #     o#                                #
################################o################################ #
#ommmmm             # ####+    ###    #          #            #   #
#!mmmmm              #    #            #                   #  +   #
###################################################################

###################################################################
#  mm                                                             #
# ############## ############################################## # #
#         #    # #                                #     mm    # # #
#         #+## # # ############+################# ########### # # #
######### #o # # # #o    +    # #m!mm#          # #         # # # #
# ! #   # #  # # # #   ### ## # #mmmm+   o      # # ####### # # # #
#  mmmm # #### # # #   #!# #  # ######      mm  #m# #     # # # # #
###mmmm##      # # # ###m# #  #      #########+## # # ### # # # # #
#  mmmm ######## # # +  m# #o #  mm  #       mmm#m# # #m# # # # # #
#   #  ##        # ###  m# ####  mo  +   o      #m# #m#m# # # # # #
#####++## ######## #mmm m#       m   #          # # #m#m  # # # # #
# #   mm# #      # ############################## # # ##### # # # #
# mmmmmm# #  # # #                                # #       # # # #
# ####### ###### ################################+# ######### ### #
#               m+m                                           #omo#
###################################################################

###################################################################
#                  ##        ##         ##        ##          ##  #
#  ##############   ## mmo  ##          ##  m     ##         ##   #
#  #    #       ##   ## m  ##           ##   m    ##mm      ##    #
#  #mmmm######   ##   ##  ######## #######  m     ##       ##     #
#  # o  #    ##   ##   ##+#            ##  m      ##      ##      #
#  #          +###### ###mmmmmmmm     ## mmm      ##     ######   #
#  #    #     ##        ##   mmmm    ##  m        ##    ##! o #   #
#  #m   ########         ##         ##   m     o  ####+####mm +   #
#  #mo  #mmm!# ##   mmm   ##         ##  mmmmmm  ##       #####   #
#  #m   #mm##   ##         #########  ##    mmm ##   ###   ## mm  #
#  #mm  #m##     ## ## o  ##  m  ####  ##      ##   #####   ##    #
#  #####+#######  #  ##  ##     ##mm##  ##    ##   ##   ##   ##   #
#  +  om##     #  #   ####     ##momo##  ##++##    ### ####   ##  #
#  ######m  mmm# ####  ##     #### #####                ##     ##+#
####m!mmmm     +                                     m     m      #
###################################################################

###################################################################
#                                                                 #
#     ####m########################################## ## ##########
#     #      #m#m#m#                   #mm  m   #           #     #
#######    # # # # #   #############   #        ########### # ### #
#     #    # # # # #    oo##mmm##oo    #        #         # # #o# #
# mmo +    # # # # #   #o## m   ##o#   #######+##  mm ### #   # # #
#     #    #       #   ###m    !m###   # ! #    ###   ### ##### # #
############ # # # #   ##  m m   m##   #mmm+ mm #m#             # #
#  mm     m# # # # #   ##     o   ##   #   #    +m    # ######### #
#      m   + # # # #   ###mmmmmmm###   #######+##m#   #           #
#   o m    # # # # #    o##     ##o    # m      ###   ########### #
############ #m#m# #   ######+######   # m  mmmm#               # #
#            #!#o# #               mm  #  m     ###mmmm##  ##o### #
####   ##############################  ########## ######    ###   #
#  +      m                                                       #
###################################################################

###################################################################
#                                                                 #
#                        ###############+####################+#   #
#  #######################                    # ##mmmmmm      #   #
#                        ########+######  #   # !##mmmm       #   #
#   ############### ##  ##    mmm      #  #   #mmm##      #####   #
#   #          !  # #    #!mmmmmm      #  #   # mm #####      #   #
#   #    o mm     # #    #   ###########  #   #  m  ######### #   #
#   #####  ######## #    #   #         #  #   #mmm   ##       #   #
#       #  #      # ##########  ########  #######+######  #####   #
#       #  #  mmmm# #        #  #             #     #  ##     #   #
#   #####  # ###### #    mmmm#  #  #########  #     #   #####+#   #
#   #o    ## #      #######mm#  #  #########  #  o  #mm           #
#   #####  #                 #  #             #mmm  #mmmmm        #
#       #  ###################  ###############mmm  ####     ######
#       #                                                         #
###################################################################

###################################################################
#                      #                                          #
########### #####      #         #####+####    #####       ###### #
#mm       # #!mm+ ######   ##    # ##     #   ## mm##    ### #### #
#  #### ### ##### #         ##   #  ##### #  ## ### ##   #   #    #
#  #  # #       # # ##### #  ##  #      # ####  # #mm##### o ###  #
#  #  # ####### ### #mmm# #   ########  #       # #!m   mmmm   #  #
#  #  #       #     #mmm# #          #  ######### ##############  #
#  #  ######  #######   # ###   ###  #       mm                #  #
#  #       #          o # #o    #!#  #        ######## ####    #  #
#  #       #   ########## #mm mmmm#  # ########        #  ##   ## #
#  #  om   #####          ####mmm##  #    m  m#   mm   #        # #
#  #             ######      #####   #####m####        #######  # #
#  #  o    #######mmmm####   mmmmmm      #m#       m     #   ## # #
#  #########             ##### ###########m###############    ### #
#                                         m                       #
###################################################################

###################################################################
# + +     #!mmmmmmmmmm#     #   #   #   #                         #
#+#+#     #####m#####m# #   #   #   # # #############+########### #
# # #####     #m#!###m# #   #   #   # # ###      mmmm    #  #   # #
#+#     #     #mmmmmmm# #   #   #   # # #        m m omm #m #m# # #
# # m o #     #m####### #   #   #   # # ##################    #   #
#+#######     #m        #       +     #        m              # # #
#m + + o#     ################################################### #
#  ######      m                                             m    #
#  #    +    ###  ###+### ####### ###+### ####### ###+### ####### #
#  # ######  # # m#    m# #m    # #     # #     # #     # # m   # #
#  ###   o#  # # m#m o m# #     # #mmmo # # mm  # #  omm# # m   # #
#++#      #  # #  #m   m# #  o  # #     # #     # # mm m# #     # #
#m######  #    #  #     # #mmmmm# #     # #     # # !   # #     # #
# #      #######  ####### ### ### ####### ### ### ####### ### ### #
# # mmm                                       mm                  #
###################################################################

###################################################################
#     +                    ##           ##  ##     ##      #   #  #
# o m #   #######           ##   omo   ##  ##      ## ####     +  #
####  #   #m#o#m#  m#m    # m##       ##   #  ####### m  ###   #  #
#     # o ##m#m#+  ###    # mm##     ##  ##+   ### ### ### #####  #
# m   #   #!#o#m#  m#m    #o   ##mmm##mm######  #      # # #   #  #
#  ####   #######         ###  o## ##!o########   ####     # om+  #
#     # #         #         ######+############# ###########   #  #
#####+# ###########              + +               # # #  m##+##  #
#     # #         # # #### # #####+############  ###o  +  ##   ####
# #####   #######   # #om# #   #     # m +      ## #   #  m#   #!m#
#     #   #     #   # #mm#####m#     #   ### # ##  ##+######   #mm#
##### #   + #m# # o # #  #   ###     ##### # #    m#   #   ##m##mm#
#  m  #   #     #   # #+## #   #######    m  #    m## m+  ##   #  #
##### #   #######   #      # #         ### # # ##  #  o#   #   +  #
#                   #      # ###########   #   ### #####       #  #
###################################################################

###################################################################
#     #   #                  #                                    #
#  #  +m  #  #########         #########################m####     #
#####m#m! #  #       ####+#### #               #m#m#m#      #     #
#   # #   #  # ##### #   #   # # #    #+#      # # # # #    #######
# #   #####  # #mmm# # m # o # #     ## ##     # # # # #    # m   #
# #  ##  # o # +m#!#o#   #   # #    ##mmm##    # # # # #    +mm!  #
# ####  ###  ###mm #m####+#### #   ##     ##   # # # # #    # m   #
# #      #   # #####m#   #   # #   #m o   m#   + + + + ############
#    ##      #    ## #   # m # #   ##     ##   # # # # #m     mm  #
# ######m### #   ## ##   #   # #    ##   ##    # # # # +   m      #
#    ##      #  ## ##mm##+#### #     ## ##     # # # # #    m o   #
# #m     #   #+## ##  ##  #  # #m     ###    # #m#m# # ############
# ###   ###        ####   #    #om             # #o# #         +  #
# #   #m #   ### #   #  o    # ########+#################### m ####
#     #      #   # #   #  #  #                                 +  #
###################################################################

###################################################################
#  #         o            #            ##  ###   #                #
# ## # ################## #            ##   #### # #####    #+### #
#  m # #                  #        #####     + # #  o  # mm #   # #
# #### # #  ###+###   o   #   oo    m  +     +   # ### #    #   # #
#    ### #  ##  ##        #        ######   #### # # # #    #   # #
###      ####  ##   ##### #        ######  ###     #   #    #   # #
# # ########o ##   ##   # #        ############################## #
# # ###  ##  ##   ###   +                                    m    #
# # ##  ####  ## ##!#   # ###+### ####### ###+### ####### ###+### #
#   #  ##  ## m###mm##### #     # #mm!mm# #     # #     # # m   # #
###+#+###   ##mm#mm##   # # mo m# #  m  # # mm  # #  !mm# # m   # #
#   #   #    ##mmm##  o # # m  m# #     # #     # # mm m# #   o # #
# m #     mm ######     # #    m# #m    # #     # #     # #     # #
#   +        #########  # ####### ###+### ####### ###+### ####### #
#   #   #    +            #                                       #
###################################################################

###################################################################
#         #    #   #          ##     ##   ##   ##       +         #
# #m # o# #  # #   #  ####### +##mmm## ####### ### ###### ######  #
#         #  # ## ##  #!  m##m# ## ##          +m#      # #!mm +  #
####+######  #  # m####mmm## ##m # #######+### #######m # # m### ##
#  #         #  ##  ####+## ## ! #          #   ##   mm # #### # ##
#  ########  #   ## ###  ### ## ## #### ### #   ##      #      #  #
#  ########  ###### # m    ## ###   #     # ######+#############  #
#                      m   ##     o ####### #        #            #
#           ####### #   m  ## ###   ##   +m   #####+###########+###
#####+##### #     # ###m ### ##### ### o ## ###  #   #   #   #    #
#m       o# #m#   # ####### ##     # #   ## #    # m   o   m +    #
#####+##### # #   #         ##   # # ###### #     #  #   #   #    #
#o       m# # #   #####+######   # # m #  # #### ######+###########
##### ##### # #   +   #  #   +   # # # # ####                     #
#         +   #   +   #  #   +   #   #             mm             #
###################################################################

###################################################################
#     +                    ##           ##  ##     ##      #   #  #
# o m #   #######           ##   omo   ##  ##      ## ####     +  #
####  #   #m#o#m#  m#m    # m##       ##   #  ####### m  ###   #  #
#     # o ##o#m#+  ###    # mm##     ##  ##+   ### ### ### #####  #
# m   #   # # #m#  m#m    #o   ##mmm##mm######  #      # # #   #  #
#  ####   #######      #  ###  o## ##!o## #####   ###      # om+  #
#     # #         #   ##    ######+######  ##### ####+######   #  #
#####+# ###########              + +               #   # mm##+##  #
#     # #         # # #### # #####+############  ###o  +  ##   ####
# #####   #######   # # m#o#   #     # m +      ## #   # m!#   #  #
#     #   #  mm #   # #m #####m#     #   ### # ##  ######### m #  #
##### #   + #m#!# o # #  #   ###     ##### # #    m#   #   ##+##mm#
#  m  #   #  mm #   # #+## #   #######    m  #    m## m+  ##   #  #
##### #   #######   #      # #         ### # # ##  #  o#   #   +  #
#                   #      # #         #   #   ### #####       #  #
###################################################################

###################################################################
#     # m #                  #                                    #
#  #  + m!#  #########         #########################m####     #
#####m# m #  #       ####+#### #               #m#m#m#      #     #
#   # #mm #  # ##### #   #   # # ##   #+#   ## # # # # #    ###+###
# #   #####  # #m  # # m # o # # #o  ## ##  o# # # # # #    # m   #
# #  ##  # o # +m# #o#   #   # #    ##mmm##    # # # # #    #mm!  #
# ####  ###  ###m  #m######### #   ##     ##   # # # # #    # m   #
# #      #   #!#####m#   #   # +   #m o   m#   # + + + ############
#    ##      #   m## #   # m # #   ##     ##   # # # # #m     mm  #
# ######m### #mmm##  #mm #   # #    ##   ##    # # # # +   m      #
#    ##      #mm##  #####+#### # #   ## ##   # # # # # #    m o   #
# #m     #   #+##   #     #  # #m##   ###   ## #m#m# # ############
# ###   ###         ####  #    #om             # #o# #         +  #
# #   #m #   ### #   #  o    # ############################# m ####
#     #      #   # #   #  #  #                                 +  #
###################################################################

###################################################################
#  #         o            #        #   #   ###   #                #
# ## # ################## #          # #    #### # #####    #+### #
#  m # #                  #        #####     +   #  o  # mm #   # #
# #### # #  ###+##### o   #   oo    m  +     +   # ### #    #   # #
#    ### #  ##  ##  +     #        #####    #### # # # #    #   # #
###      ####  ##   ##### #        #####   ###     #   #    #   # #
# # ########o ##   ##   # #        ############################## #
# # ###!m##  ##   ###   +                                    m    #
# # ##mm####  ## ## #   # ###+### ####### ###+### ####### ###+### #
#   #m ##  ## m###m ##### #     # #m   m# #     # #     # #mmmmm# #
##+##+###   ##m #m!##   # # mo m# #  m  # # mm  # #  omm# #mmmmm# #
#   #   #    ##m  ##  o # # m  m# #     # #     # # mm m# #     # #
# m #     mm ######  mm # #    m# #m    # #     # #     # #  !  # #
#   +        #########+## ####### ### ### ####### ### ### ####### #
#   #   #    +            #                                       #
###################################################################

###################################################################
#         #    #   #          ##     ##   #     #       +         #
# #m # o# #  # #   #  ####### +##mmm## ####### ### ###### ######  #
# #  #  # #  # ## ##  #!mm ##m# ## ##          +m#      # # m  +  #
#      m  #  #  # m####   ### #  # #######+### #######m # # m### ##
####+######  #  ##  ####+## # #  #          #    #  ##m # #### # ##
#         #  #   ## ###  #### # ## #### ### #    #    m #      #  #
#  #####  #  ###### # m    ## ###   #     # ######+#############  #
#  #####  #            m   ##     o #######          #            #
#           ####### #   m  ##  ##    #   +m  ##+###################
#####+##### #     # ###m ###  ###  # # o ##  #   #   #   #   # mmm#
#m       o# #m#   # #######  ##    # #   ##  #     m   o   m + mm!#
########### # #   #         ##   # ###########   #   #   #   # mmm#
#o       m# # #   #####+######   # # m #   # ##+###################
##### ##### # #   +   #mm#   +   # # # # # #                      #
#         +   #   +   #m!#   +   #   #   #         mm             #
###################################################################
