@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                                                  .*@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++                                    :-        :%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-                                   .@#        +@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:.                                  -@@+        -@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+         ..                      -@@@=        .@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#=        -=-:                   =@@@:         @@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:         .:-:.               ==*@%          *@@@@@@@@@@@@@@#
.-+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=:-                        : @@@@#          =@@@@@@@@@@#=:  
     :+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#=+ ..       .:   :    -=@+#@@@%          :@@@@@@%+:     .
*   :.   =#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=+:       :-- -@.:-*@@@@@@@@@:         *@@@#=.  .=+:  :
.   :#@*-   :+*%@@@@@@@@@@@%#%@@@@@@@@@@@@=         -##@@#-#@@@@@@#*##=        .*=:   :*%@%.    
      #@@@*       .......     *@@@@@%#+-:.           .:-+#%@@@@@@-                   *@@@#      
      .@@%=   -******++:  ..   +@%+:                      .-*@@%:   -.        =%%-   .*@@=      
      -@@.     +@@@@@@=.  :@+   :                            :+.  :%#.      ..@@-      %@#      
      +@=       +@@@@:     -@%.                                  -@@       :*%@+       -@@.     
*     %@+       =@@@=       -:                                    ..       =@@@+       +@@-    +
@=   :@@@:      %@@@+                                                      #@@@%      -@@@+   =@
@@.  =@@@#     :@@@@@.                                                    -@@@@@-    .@@@@#  :@@
@@#  *@@@@=    +@@@@@* ......::::::------======+++++++*********###########@@@@@@%####%@@@@@##@@@
@@@*-@@@@@@+++*@@@@@@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%%%%%%%%%@%%%@@@@@@@@@#@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@***+++++======-------:::::::................ +- #@@@@@@@@@#@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@:                                             ++@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@:                                             :@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@+                                               +@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@%         -                                      .@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@=        ++                                       +@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@.       .@+                              +        :@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@%=        %@*                              @+        *%@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@*-.         *@@#                             .@@-         .=*%@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@%+:            +@@@*                              %@@:            :+#@@@@@@@@@@@@@@
@@@@@@@@@@#+:              +@@@@+                              #@@@:              .-*%@@@@@@@@@@
@@@@@@@#=.               -%@@@@@=                              =@@@@*.                :+#@@@@@@*
.+@%*-.               -*%@@@@@@@-                              +@@@@@@#=.                .-*%%- 
  .                -*%@@@@@@@@@@=                              *@@@@@@@@@%+:                    
