^^^^^^^^"""""""""&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&^^^^^^^^^^^^&
^^^^^^^"""""""""""&&&&&&&&&&&&&&&&&&"&&&&&&"&&&""&&&&&&^^O^^^^^^&&&
^^^^^""""""""""""&""&&&&&&&&&&&&&&&&&"&&&"&&"&"&&"&&&&&".."&^^^&&&&
^^^I..."""""""""&"&"&&&"&&&&&&&&&"&&""&&"&""&"&&&""&""&..&&&&&&&&&&
^^""""...""""""""""""""""""&""&&&&"""&&&&&&&""&""""""&"..&&&&&&&"&&
"""""""...""""""""""""""""""""""""""""&&&&&"&&&&&&&"&&"&..&&&&&&&"&
""""""""&.""#####"#####""""&"""""""""""&&&"""&&&&"&""&&..&&&&&&""&&
""""""""".."#####"#####"#####"""""""""""&&&"&"&&"&&"&""."&"&&&"&&&&
""&"""###"."##D##"##T##"#####"&""""""""""&&"&&"&"&""&"..&"&&&"&"&&&
""""""##S.............""##B##"""""""""""&"&&""""&"&"&.."&&&"&""&&&&
"""&""###""""......_.........""""""""""&"&"&""&""&""..""&&"&"&&&&&&
"&""""""""""""~~~~...................................&"&"&"&&&"&&&&
"&""~~~~~~~""~~~~~~~""&#L#""""""""""""&"""""&"&&&""".""&""&""&"&&"&
""&""~~~~~~~~~~~~~~~~""###"""""""""""&""&&"""&&"&&"#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             #
###################################################################
