###################################                    #######################################################
###################################                    #######################################################
###################################                    #######################################################
###############         #######    ````````````````````        ###########     ###############################
###############         #######    z###################        ###########     ###############################
###############         #######    z###################        ###########     ###############################
###############         #######    z###################        ###########     ###############################
###########                        z###################........                    ###########################
###########                        z##########################W                    ###########################
###########                        z##########################W                    ###########################
###########                        z##########################W                    ###########################
###########    `,,,.               z###WMMM@###WMMMMMMM#######W               `,,,.    #######################
###########    ;###z               z###;   M###.       #######W               *###+    #######################
###########    ;###z               z###;   M###.       #######W               *###+    #######################
###########    ;###z               z###;   M###.       #######W               *###+    #######################
#######    .,,,*###z               +MMMi,,,nMMM;,,,,,,,MMMMMMMn               *###+    #######################
#######    ,#######z                   n###,   W#######                       *###+    #######################
#######    ,#######z                   n###,   W#######                       *###+    #######################
#######    ,#######z                   n###,   W#######                       *###+    #######################
#######    ,###@xxx#:::::::::::::::::::M###*:::W#######::::::::               ;xxxi        ###################
#######    ,###n   i##########################################W                            ###################
#######    ,###n   i##########################################W                            ###################
#######    ,###n   i##########################################W                            ###################
#######    .nnn#;;;########MnnnnnnnW###############nnnnnnnn###W;;;:   .;;;,   .;;;,   ,;;;,    ###############
#######        ;###########+       z###############`      `#######M   ;###z   *###+   ####i    ###############
#######        ;###########+       z###############`      `#######M   ;###z   *###+   ####i    ###############
#######        ;###########+       z###############`      `#######M   ;###z   *###+   ####i    ###############
#######    `iii########Mzzz+iiiiiii#zzzW#######nzzziiiiiiiizzzn###Wiii####xiiiz###niii+zzz:        ###########
#######    ,############   +#######i   n#######.   @######@   .#######################*            ###########
#######    ,############   +#######i   n#######.   @######@   .#######################*            ###########
#######    ,############   +#######i   n#######.   @######@   .#######################*            ###########
###    .***############x***n#######z***M#######+***@######@***+#######################n***.        ###########
###    .##################################################################################i    ###############
###    .##################################################################################i    ###############
###    .##################################################################################i    ###############
   `+++###################################################################################n+++:    ###########
   `##########################################################################################;    ###########
   `##########################################################################################;    ###########
   `##########################################################################################;    ###########
   `+++++++############x+++x###n+++M############+++@###++++###################################;    ###########
           ,############   +###*   z###########.   @###   `###################################;    ###########
           ,############   +###*   z###########.   @###   `###################################;    ###########
           ,############   +###*   z###########.   @###   `###################################;    ###########
           ,#######M***+###M###*   :***M#######z#######   `***+###################n***x#######;    ###########
#######    ,#######z   *#######*       n###############       .###################+   ########;    ###########
#######    ,#######z   *#######*       n###############       .###################+   ########;    ###########
#######    ,#######z   *#######*       n###############       .###################+   ########;    ###########
#######    ,#######z   ,iiiiiii,       n#######*iiiiiii       `iii+###############+   ,iiiiiii.    ###########
#######    ,#######z                   n#######.                  ,###############+                ###########
#######    ,#######z                   n#######.                  ,###############+                ###########
#######    ,#######z                   n#######.                  ,###############+                ###########
#######    ,#######z       innnnnnn:   n#######.   znnnnnnz   .nnnz;;;+###########+                ###########
#######    ,#######z       +#######i   n#######.   @######@   .###M   ;###########+            ###############
#######    ,#######z       +#######i   n#######.   @######@   .###M   ;###########+            ###############
#######    ,#######z       +#######i   n#######.   @######@   .###M   ;###########+            ###############
#######    ,#######z       .:::::::.   n#######.   ::::::::   .###M   ;###########+            ###############
#######    ,#######z                   n#######.              .###M   ;###########+            ###############
#######    ,#######z                   n#######.              .###M   ;###########+            ###############
#######    ,#######z                   n#######.              .###M   ;###########+            ###############
#######    ,#######z   ;MMMMMMMMMMM;   n#######MMMMMMMMMMMMMMMM###M   ;###########+            ###############
#######    ,#######z   *###########i   n##########################M   ;###########+        ###################
#######    ,#######z   *###########i   n##########################M   ;###########+        ###################
#######    ,#######z   *###########i   n##########################M   ;###########+        ###################
#######    ,###x,,,iMMM@###########WMMM@##########################M   ;#######z,,,`        ###################
#######    ,###n   i##############################################M   ;########            ###################
#######    ,###n   i##############################################M   ;########            ###################
#######    ,###n   i##############################################M   ;########            ###################
#######    `...`   i###################i...M###:...@###...,#######M   ;########            ###################
###########        i###################;   M###.   @###   `#######M   ;########        #######################
###########        i###################;   M###.   @###   `#######M   ;########        #######################
###########        i###################;   M###.   @###   `#######M   ;########        #######################
###########         ```*###############@@@@:```M@@@.```@@@@#######M   ;###n````        #######################
###############        *###################,   W###`   ###########M   ;###z            #######################
###############        *###################,   W###`   ###########M   ;###z            #######################
###############        *###################,   W###`   ###########M   ;###z            #######################
###############                            M###########                            ###########################
###############                            M###########                            ###########################
###############                            M###########                            ###########################
###############                ````````````x@@@@@@@@@@@````````````        ````    ###########################
###################            ############,           ###########M       i####    ###########################
###################            ############,           ###########M       i####    ###########################
###################            ############,           ###########M       i####    ###########################
###################            ########@WWW,   ....    WWWW#######M   `...*####    #######     ###############
#######################        ########;       W###`      `#######M   ;########    #######     ###############
#######################        ########;       W###`      `#######M   ;########    #######     ###############
#######################        ########;       W###`      `#######M   ;########    #######     ###############
#######################    `,,,#MMM@###i,,,`   xMMM`   ,,,:####MMMn   ;########    #######         ###########
#######################    +###*   z#######,           #######W       ;########    ###########     ###########
#######################    +###*   z#######,           #######W       ;########    ###########     ###########
#######################    +###*   z#######,           #######W       ;########    ###########     ###########
#######################    +###*   +MMMMMMM;,,,,,,,,,,,MMMMMMMn       ;########    ###########     ###     ###
#######################    +###*           M###########               ;########    ###########     ###     ###
#######################    +###*           M###########               ;########    ###########     ###     ###
#######################    +###*           M###########               ;########    ###########     ###     ###
#######################    +###*   ,:::::::M###########:::::::::::,   ;########    ###########     ###        
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    +###*   z##############################M   ;########    ###########     #######    
#######################    ;zzz:   z##############################M   ,zzzzzzzi    #######         #######    
#######################            z##############################M                #######     ###########    
#######################            z##############################M                #######     ###########    
#######################            z##############################M                #######     ###########    
#######################    ,***,   z######################z#######M   .*******:                #######        
#######################    +###*   z###################   `#######M   ;########            ###########     ###
#######################    +###*   z###################   `#######M   ;########            ###########     ###
#######################    +###*   z###################   `#######M   ;########            ###########     ###
#######################    +###*   z#######z+++++++++++++++#######M   ;########                            ###
#######################    +###*   z#######,           ###########M   ;########                        #######
#######################    +###*   z#######,           ###########M   ;########                        #######
#######################    +###*   z#######,           ###########M   ;########                        #######
#######################    :+++++++M#######z+++++++++++###########W+++++++++++:                        #######
#######################        #######################################n                #######################
#######################        #######################################n                #######################
#######################        #######################################n                #######################
###################    ;#######M######################################W###############;    ###################
###################    *##############################################################*    ###################
###################    *##############################################################*    ###################
###################    *##############################################################*    ###################
###################    *################iiiW######################Wiii################*    ###################
###################    *###############;   M######################M   ;###############*    ###################
###################    *###############;   M######################M   ;###############*    ###################
###################    *###############;   M######################M   ;###############*    ###################
###################    :;;;;;;;n#######;   M######################M   ;#######n;;;;;;;:    ###################
#######################        ########;   M######################M   ;########        #######################
#######################        ########;   M######################M   ;########        #######################
#######################        ########;   M######################M   ;########        #######################
#######################        ::::::::zxxxi::::::::::::::::::::::ixxxz::::::::        #######################
###############################        n###,                      ,###n        ###############################
###############################        n###,                      ,###n        ###############################
###############################        n###,                      ,###n        ###############################
###############################        n###,                      ,###n        ###############################
###################################    n###,    ##############    ,###n    ###################################
###################################    n###,    ##############    ,###n    ###################################
###################################    n###,    ##############    ,###n    ###################################
###################################    n###,    ##############    ,###n    ###################################
###################################    n###,    ##############    ,###n    ###################################
###################################    n###,    ##############    ,###n    ###################################
###################################    n###,    ##############    ,###n    ###################################
###########################    ####@WWW@###,    #######   `####WWW@###n    ###################################
###########################    ############,    #######   `###########n    ###################################
###########################    ############,    #######   `###########n    ###################################
###########################    ############,    #######   `###########n    ###################################
###########################    `````````````    #######    ````````````    ###################################
###########################                 ###########                #######################################
###########################                 ###########                #######################################
###########################                 ###########                #######################################