+###################+
                                     +++@@@@@@+++                 +#####################+
                                 +@@@@@@@@@@@@@@@@@@+           ##########+     +######
                              +@@@@@@@@@@@@@@@@@@@@@@@@+     ##########        +######
                            +@@@@@@@@@@@@@@@@@@@@@@@@@@@@++#########          +#####+
                             @@@@@@@@@@@@@@@@@@@@@@@@@@+@@@++####            ######+
                         +     @@@@@@@@@@@@@@@@@@@@@@+@@@@@@+++             ######
                        @@   @@@@@@@@@@@@@@@@@@@@@+@@@@@@@@@@@            ######+
                       @@@   @@@@@@@@@@@@@@@@@@@+@@@@@@@@+@@@@@         +######
                      @@@@@  @@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@@@       ######
                     +@@@@@  @@@@@@@@@@@@@@+@@@@@@@@+@@@@@@@@@@@+    ######+
                    +@@@@@@@ @@@@@@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@+ #######
                    +@@@@@@@ @@@@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@@@++#####
                    @@@@@@@@@ @@@@@@@+@@@@@@@+@@@@@@@@@@@@@@@@@@@@+###
                   +@@@@@@@@@ @@@@@+@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@+#+
                   +@@@@@@@@@@ @@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+
                   +@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@+
                   +@@@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@+
                   +@@@@@@@+#######@@@@@@@@@@@@@@@@@@#######+@@@@@+
                   +@@@@@+#######@@@@@@@@@@@@@@@@@+#######+@@@@@@@+
                    @@@+#######@@@@@@@@@@@@@@@@@+#######+@@@@@@@@@
                    ++#######@@@@@@@@@@@@@@@@@########+@@@@@@@@@@+
                    +######@@@@@@@@@@@@@@@@@########+@@@@@@@@@@@@+
                  +#++###@@@@@@@@@@@@@@@@+########+@@@@@@@@@@@@@+
                 ####+#+@@@@@@@@@@@@@@@########+@@@@@@@@@@@@@@@@
               ######+ @@@@@@@@@@@@@+########+@@@@@@@@@@@@@@@@@
             +######    @@@@@@@@@@#########+@@@@@@@@@@@@@@@@@@
            ######       +@@@@@+########+@@@@@@@@@@@@@@@@@@@+
          +######         +@+#########+@@@@@@@@@@@@@@@@@@@@+
         +#####+          #++######+@@@@@@@@@@@@@@@@@@@@@+
        ######+        ######++##+@@@@@@@@@@@@@@@@@@@@@+
       ######+     +##########   +@@@@@@@@@@@@@@@@@@+
     +#####################+         +++@@@@@@+++
    +#####################+