                      ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                              
                     ,,,,,,::::::::::::::::::::::::::::,,,,,,,,,,,                                                                                    
                ,,,,,,:::;;;++++++**+++++++++++++++++++;;;:::::,,,,,,,,,                                                                              
                ,,,:::;;++**??%%%%%%%%%%%%%%%%%%%%%%????***+++;;;::::,,,,,,,,                                                                         
             ,,,,,::;;+**?%%SS########################SSSS%%???**+++;;::,,,,,,                                                                        
            ,,,,:::;+**?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SS%%??**++;:::,,,,,                                                                      
           ,,,,::;;+**?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%??*++;;::,,,,                                                                     
          ,,,,,::;++*?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%%?*++;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                        
          ,,,,,:;;+**?%SS#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%%?*++;:::,,,,,,,,,,,::::::::::::::,,,,,,,,,,,,,                               
          ,,,,,::;+**?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###S%%?*++;;:::::::::;;;;++++++++++++;;;;;::::::,,,,,,,,,,                       
           ,,,,::;;+*??%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%??*++;;;::;;;++**???%%%%%%??????****+++++;;;:::::,,,,,,,                  
            ,,,,::;++*?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?**+++++++**?%%SSS########SSSSSS%%%%????***++;;;::,,,,,,                
            ,,,,::;;+*??%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%??***++**??%SS##@@@@@@@@@@@@@@#######SSS%%??**+;;::,,,,,               
            ,,,,::;;+**?%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###S%%??****??%%SS##@@@@@@@@@@@@@@@@@@@@@@@###SS%??*+;;::,,,,               
            ,,,,::;;+*??%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###S%%%??????%%SS##@@@@@@@@@@@@@@@@@@@@@@@@@###S%%?*++;::,,,,,              
           ,,,,:::;++*?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSS%%?????%%SSS##@@@@@@@@@@@@@@@@@@@@@@@@@@##S%%?*++;:::,,,,,              
           ,,,,::;;+**?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%%????%%%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@###S%??*++;::,,,,                 
           ,,,,:::;++*??%%SS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSS%%%????%%%SS###@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%%?*+;;::,,,,                  
            ,,,,:::;;++**??%%SSS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSS%%%%%%%%SSS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%?**+;::,,,,                   
            ,,,,,,::::;;;++**??%%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@########SSSSSSSSS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%?**+;;::,,,,                  
               ,,,,,,,,:::;;++**?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%%?**+;;:::,,,,,,,             
                   ,,,,,,,::;;+*??%S###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%%?**++;;;::::,,,,,,,,,      
                     ,,,,::;;++*?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%???**+++;;;;::::,,,,,,, 
                 ,,,,,,::;;++**?%%S###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSS%%%???**++;;;:::,,,,
               ,,,,,:::;;+**??%SS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%??**++;;:::,
             ,,,,,::;;++*??%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SS%%??*++;;::
           ,,,,,::;;+**?%%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSSSSSSSSSSSSSSSSSS%%??*++;;::
        ,,,,,,::;;+*??%SS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%%??????????????????????**++;;::,
       ,,,,,::;;+**?%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###S%%??*+++;;;;;;;;;;;++++++++;;;;::::,,
      ,,,,,::;++*?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%??*+;;::::,,,,,,,::::::::::::,,,,,,,,
      ,,,,::;++*?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?**+;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,   
      ,,,,::;;+*??%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?**+;::,,,,,                           
      ,,,,,::;;+**?%%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%??*+;;::,,,,,                           
        ,,,,,::;;++*??%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?**+;::,,,,,                            
         ,,,,,,::;;++*?%%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@##########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?*++;::,,,,                             
            ,,,,,::;;+*?%%S##@@@@@@@@@@@@@@@@@@@@@@@###SSSSSSSS####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%??*+;;::,,,,                            
             ,,,,,:;;+*??%S##@@@@@@@@@@@@@@@@@@@@@@##SSS%%%%%SSS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%??*++;::,,,,,                          
             ,,,,::;;+*?%%S##@@@@@@@@@@@@@@@@@@@@@###SSS%%%%%SSS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%%?**+;;::,,,,,                        
            ,,,,:::;+**?%SS##@@@@@@@@@@@@@@@@@@@@@###SSSSSSSSS###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%%?*+;;::,,,,                        
           ,,,,,::;++*?%SS##@@@@@@@@@@@@@@@@@@@@@@#####SSS####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?*++;::,,,,,                      
         ,,,,,::;;+**?%SS##@@@@@@@@@@@@@@@@@@@@@@@@########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%%?*++;::,,,                       
        ,,,,:::;++*?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SS%?**+;::,,,,                      
      ,,,,,::;;+*??%S###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%??*+;::,,,,,                     
      ,,,,::;;+*?%%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%??*+;::,,,,,                     
     ,,,,,:;;+*??%SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSSS%%SSSS###@@@@@@@@#######@@@@@@@@@@@@@@@@@@@##S%??*+;;::,,,,                     