@@@@@@@@@@@#########SSSSSS%%%%%????**+;:,,                                                                                                            
@@@@@@@@@@@#########SSSSSS%%%%%????**++:,,                                                                                                            
@@@@@@@@@@@#########SSSSSS%%%%%?????**+;,,,                                                                                                           
@@@@@@@@@@@#########SSSSSS%%%%%?????**+;:,,                                                                                                           
@@@@@@@@@@@#########SSSSSS%%%%%%????**++:,,                                                                                                           
@@@@@@@@@@@#########SSSSSSS%%%%%????***+;:,,                                                                                                          
@@@@@@@@@@@##########SSSSSS%%%%%?????**++:,,                                                                                                          
@@@@@@@@@@@##########SSSSSS%%%%%%????***+;:,,                                                                                                         
@@@@@@@@@@@@#########SSSSSSS%%%%%?????**++;,,,                                                                                                        
@@@@@@@@@@@@@#########SSSSSS%%%%%%????***+;:,,                                                                                                        
@@@@@@@@@@@@@#########SSSSSSS%%%%%?????***+;:,,                                                                                                       
@@@@@@@@@@@@@##########SSSSSSS%%%%%?????**++;:,,                                                                                                      
@@@@@@@@@@@@@@##########SSSSSS%%%%%%????***++;:,,                                                                                                     
@@@@@@@@@@@@@@@#########SSSSSSS%%%%%%????***+;;:,,                                                                                                    
@@@@@@@@@@@@@@@##########SSSSSSS%%%%%?????***++;:,,                                                                                                   
@@@@@@@@@@@@@@@@#########SSSSSSSS%%%%%?????***++;:,,                                                                                                  
@@@@@@@@@@@@@@@@##########SSSSSSS%%%%%%?????***++;:,,                                                                                                 
@@@@@@@@@@@@@@@@@##########SSSSSSS%%%%%%?????***++;:,,,                                                                                               
@@@@@@@@@@@@@@@@@@##########SSSSSSS%%%%%?????*****+;::,,                                                                                              
@@@@@@@@@@@@@@@@@@@##########SSSSSSS%%%%%%?????****+;;:,,,                                                                                            
@@@@@@@@@@@@@@@@@@@@#########SSSSSSSS%%%%%%?????****++;::,,                                                                                           
@@@@@@@@@@@@@@@@@@@@##########SSSSSSSS%%%%%%?????*****++;:,,,                                                                                         
@@@@@@@@@@@@@@@@@@@@@##########SSSSSSSS%%%%%%??????****++;::,,,                                                                                       
@@@@@@@@@@@@@@@@@@@@@@###########SSSSSSS%%%%%%??????****+++;:,,,,                                                                                     
@@@@@@@@@@@@@@@@@@@@@@@###########SSSSSSSS%%%%%%??????****+++;::,,,                                                                                   
@@@@@@@@@#@@@@@@@@@@@@@############SSSSSSSS%%%%%%??????*****+++;:,,,,                                                                                 
@@@@@S?+:+?#@@@@@@@@@@@@@#S#########SSSSSSSS%%%%%%%??????*****+++;::,,,                                                                               
@@@@*,   ,+%@@@@@@@@@#%*;,;S#########SSSSSSSSS%%%%%%%??????*****+++;::,,,,                                                                            
@@@%     ,;%@@@@@@@#*:   :%#@#########SSSSSSSSS%%%%%%%???????******++;;:,,,,                                                                          
@@@+      ;%@@@@@#*,    ;S@@@###########SSSSSSS%%%%%%%%%%??????******+++;::,,,,                                                                       
@@#,     ,+S@@@@?,    ,*#@@@@@@@@########SSSSSSSS%%%%%%%%%%???????******++;;::,,,                                                                     
@@%      :?@@@#;     :?@@@@@@@S?+;:+S######SSSSSSSSSS%%%%%%%%????????*****+++;;::,,,,,                                                                
@@+     ,;%@@?,     ;S@@@@@S*:,  ,+S#########SSSSSSSSSSS%%%%%%%%???????******+++;;::,,,,                                                              
@#:     ,+S#;     ,+#@@@S*:    ,+S@@############SSSSSSSSSSS%%%%%%%%???????******++++;;::,,,,                                                          
@*      ,+*,     ,*@@#?;,   ,;?#@@@@@##############SSSSSSSSSS%%%%%%%%%????????*******++;;::,,,,,                                                      
#,      ,:      ,?#S+,    :*S@@@@@@@@@@@#############SSSSSSSSSSSS%%%%%%%%????????*******+++;;::,,,,,,                                                 
;              :**:     :?#@@@#SS%???%%S################SSSSSSSSSSS%%%%%%%%%%????????*******+++;;;::,,,,,,                                            
              ,,,     ,+%%?+;:,,      :?###################SSSSSSSSSSS%%%%%%%%%%?????????*******++++;;;::,,,,,,                                       
                      ,:,       ,,:;*%#@@@@@@@################SSSSSSSSSSSS%%%%%%%%%%%?????????*******++++;;;:::,,,,,,,                                
                          :;*?%S##@@@@@@@@@@@@@@@################SSSSSSSSSSSSSS%%%%%%%%%%??????????*******+++++;;;;::::,,,,,,,,,                      
                      ,+?S@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSS%%%%%%%%%%%????????????*********++++++;;;;:::::,,,,,,,,,,,,,,,,,,,,,
                     ;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSS%%%%%%%%%%%%%????????????************++++++++;;;;;;;::::::::::::
                    :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSS%%%%%%%%%%%%%???????????????********************++++++++++
                   :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%???????????????????????????**********
                  :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%???????????????????????????