#######SSSSSSSSSS%%%%???********+++++;++++**??%%%SS###########@####SSSSSS%%???***++;;:,,                                                              
###SSSSSSSSSSSSSS%%%%???*****+++++++;;++++**???%%%SS##############SSSSS%%%%??***+++;::,                                                               
####SSSSSSSSSSSS%%%%%???***+++++++;;;;++++**???%%%%%SSS######SSSSSSSS%%%%???**+++;;::,,                                                               
####SSSSSSSSSS%%%%%%????***+++++;;;;;;;+++***???%%%%%SSSSSSSSSSSSS%%%%%???***++;;;:,,,                                                                
######SSSSSSSSSS%%%%%???***++++;;;;;;;;+++***????%%%%%%SSSSSSS%%%%%%%???***++;;;::,                                                                   
%%%?%%SSSSS%?++*%%%%%???***++++;;;;;;;;+++***????%%%%%%SSSS%%%%%%?????***+++;;::,,                                                                    
##S%?*+;::;,    +%?********+++;;;;;;;;++++***???%%%%%%%%%%%%%%??????***++;;;;::,,                                                                     
#######?,      ,:,      ,:++++;;;;;;;;++++***???%%%%%%%%%%%??????***+++;;:::,,,                                                                       
######;                   ,+++;;;;;;;;+++***???%%%%%%%%%%????*****+++;;:::,,                                                                          
@@@@@#?;;+*,              ,,;+;;;;;;;+++***???%%%%%%%%%????*****+++;;::,,,                                                                            
@@@@@@@@@@#,                ,;+;;;;+++++**???%%%%%%%%%%???***+++;;;:::,,                                                                              
@@@@@@@@@@S                 :;+;;;;++++***??%%%%SSSSS%%%??*+++;;:::,,,                                                                                
@@@@@@@@@@@;               ,;+++;;;+++++**??%%%%SSSSSS%%??*++;;::,,                                                                                   
@@@@@@@@@@@S,                ,:;;+++++++***??%%%SSSSSSS%%?*++;::,,                                                                                    
@@@@@@@@@@@@:                   ,,;++++++**??%%%SSSSSSSS%?*+;;:,,,,                                                                                   
@@@@@@@@@@@%,                      :;++++**???%%SSSSSSSS%?**;;:,,,,                                                                                   
@@@@@@@@@@%,                         ,:;+****?%%%SSSSSSS%??*+;::,,,                                                                                   
@@@@@@@@@*,                             ,+***??%%%SSSSSS%??*+;::,,                                                                                    
@@@@@@@S;                               ,+**???%%%SSSSSS%%?*+;:,,                                                                                     
@@@@@@?,                               ,+**???%%%%%SSSSS%??+;:,                                                                                       
@@@@@+                                 ,?????%%%%%%%%%%%??*+;:,,                                                                                      
@@@@+                 ;,    :,         ,*????%%%%%%%%%???*+;;::,                                                                                      
@@@S                 ;? ,   ;,          +**???%%%%%%%%??**+;;;:,                                                                                      
@@@%                ,S?:*               :**?????%%%%%%??**+;;::,                                                                                      
@@@?                ?@?%S,               +**?????%%%%%%%?**+;:,,                                                                                      
@@@;         ,     +@@##;                ,*???????%%%%%%%?*+;;:,                                                                                      
@@@::     ,?:;+:  +@@@@?                  ;????????%%%%%%?*++;:,                                                                                      
@@@?, :::;%@#*+,  ,S@@?,                   +%%%%%?%%%%%%??**+;:,,                                                                                     
@@@@S?S@#@@@%:  +*:S@?,                    ,?%%%%%%%%%%%???*++;:,,                                                                                    
@@@@@@@@@@@@*  *@@@@*                       :%%%%%%%%%%%????**+;:,,                                                                                   
@@@@@@@@@@@@@: S@@#;                         ;%%%%%%%%%%%????**+;;:,,                                                                                 
@@@@@@@@@@@@@S?@@%,                           +%%%%%%%%%%%%%%??**++;:,,                                                                               
@@@@@@@@@@@@@@@#+                              *%%%%%%%%%%%%%%???**+;;:,,                                                                             
@@@@@@@@@@@@@@S:                               :%%%%%%%%%%%%%%%%%%??*+;::,,                                                                           
@@@@@@@@@@@@@?,                                 :%%%%%%%%%%%%%SSS%%%??*++;:,                                                                          
@@@@@@@@@@@%;,                                  ,;%SSSSSSSSSSSSSSSSSS%%?**+;:,,                                                                       
@@@@@@@@@@?,                                      ?SSSSSSSSSSSSSSSSSSSS%%?**+;;:,,                                                                    
@@@@@@@@@+                                        ;SS%%%%%SSSSSSSSSSSSSS%%??*++;;:,,                                                                  
@@@@@@@#+                                         :?%%%%%%%%%%SSSSSSSSSSS%%???**+;;:,,                                                                
@@@@@@@S,                                         ,*??????????%%%%%%%%SS%%%%%%???*+;;:,,                                                              
@@@@@@@* ,                                        ,*************????%%%%%%%%%%%%???*++;:,,                                                            
@@@@@@@#%#SSS##?,                             ,;+++******+**********???%%%%%%%%%%%%??**+;:,,                                                          
@@@@@@@@@@@@@@@@S+++**+:,            ;;;;::::;*??******+++++++++*****??%%%%%%%%SSSS%%??**+;:,,                                                        
@@@@@@@@@@@@@@@@@@@@@@@@:    +%%:   :###SSSS%%??******+++++++++*****???%%%%%SSSSSSSSS%%%?**+;::,                                                      
@@@@@@@@@@@@@@@@@@@@@@@#,   ;@@@*   ;###SSSS%%%??*****+++++++****?????%%%%SSSS######SSS%%??**+;:,,                                                    