@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###########SSSSSSSS%%%%%%?????***++++;::,,,                                                                        
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###########SSSSSSSS%%%%%%?????****+++;;:,,,,                                                                       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############SSSSSSSS%%%%%%?????****++++;;:,,,                                                                       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############SSSSSSSS%%%%%%%????*****+++;;::,,,,                                                                     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############SSSSSSSS%%%%%%?????****++++;;::,,,                                                                     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############SSSSSSSS%%%%%%%????*****++++;;::,,,                                                                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSS%%%%%%?????*****++++;;::,,,,                                                                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSSS%%%%%%?????*****++++;;::,,,,                                                                 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSS%%%%%%%?????****+++++;;::,,,,                                                                
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSSS%%%%%%??????****+++++;;::,,,,                                                               
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSSSSS%%%%%%??????****+++++;;;::,,,,                                                             
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSSSSS%%%%%%%?????******++++;;;::,,,,,                                                           
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSSSSS%%%%%%%??????*****++++;;;:::,,,,                                                          
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################SSSSSSSSS%%%%%%%??????*****+++++;;;:::,,,,                                                        
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSSSSSS%%%%%%??????*****+++++;;;;:::,,,,                                                      
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################SSSSSSSSSS%%%%%%%??????*****+++++;;;::::,,,,                                                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################SSSSSSSSSS%%%%%%%??????*****+++++;;;;::::,,,,                                                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################SSSSSSSSSS%%%%%%%%??????*****+++++;;;;::::,,,,                                                
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSS%%%%%%%%??????******+++++;;;;::::,,,,,                                             
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSS%%%%%%%%??????******+++++;;;;;::::,,,,,                                          
@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@###################SSSSSSSSSSSSS%%%%%%%%??????******++++++;;;;::::,,,,,                                        
@@@@@@@@@@@@@@@@@@@@@@#%+::*S@@@@@@@@@@@@###################SSSSSSSSSSSS%%%%%%%%????????******+++++;;;;;::::,,,,,,                                    
@@@@@@@@@@@@@@@@@@@@@S,    :?#@@@@@@@@#%+:;%#################SSSSSSSSSSSSS%%%%%%%%%???????******++++++;;;;;::::,,,,,,                                 
@@@@@@@@@@@@@@@@@@@@@+     ,+#@@@@@@S+,   +S##################SSSSSSSSSSSSS%%%%%%%%%%????????******+++++++;;;;:::::,,,,,,                             
@@@@@@@@@@@@@@@@@@@@@:     ,+#@@@@S;    ,*######################SSSSSSSSSSSSSS%%%%%%%%%????????*******+++++++;;;;;;:::,,,,,,,                         
@@@@@@@@@@@@@@@@@@@@S,     :*#@@@*,    ,?#######@@###############SSSSSSSSSSSSSSS%%%%%%%%%%????????*******++++++++;;;;;:::::,,,,,,                     
@@@@@@@@@@@@@@@@@@@@%      :%@@#;     :%@@#@@##S?+;?################SSSSSSSSSSSSSSS%%%%%%%%%%????????********+++++++;;;;;;;:::::,,,,,,,               
@@@@@@@@@@@@@@@@@@@@*     ,;S@%:     :%@@@@#%+:   ;S##################SSSSSSSSSSSSSSS%%%%%%%%%%%?????????********++++++++;;;;;;:::::,,,,,,,,,,        
@@@@@@@@@@@@@@@@@@@@:     ,+S*,     ;S@@#S+,    :?#######################SSSSSSSSSSSSSSS%%%%%%%%%%%??????????*********+++++++++;;;;;;:::::,,,,,,,,,   
@@@@@@@@@@@@@@@@@@@%      ,;;      :S@S*:    ,+%#@#########################SSSSSSSSSSSSSSSS%%%%%%%%%%%%??????????**********+++++++++++;;;;;;::::::,,,,
@@@@@@@@@@@@@@@@@@@+      ,,      ;SS+,    :*S@@##@@@@#########################SSSSSSSSSSSSSSSS%%%%%%%%%%%%???????????************+++++++++++++;;;;;;;
@@@@@@@@@@@@@@S%S#%,             :+;     ,*#@@@##SSSSSSS##########################SSSSSSSSSSSSSSSSS%%%%%%%%%%%%?????????????***************+++++++++++
@@@@@@@@@@#*;: ,,:,             ,,     ,;%S%*+;:,,,   ,+S#############################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%????????????????******************
@@@@@@@@@@+                            :;:,       ,:;*S#@################################SSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%???????????????????********
@@@@@@@@@@?                                ,:;*?%S##@@@@@@@@@###############################SSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%????????????????????
@@@@@@@@@@@;                            :+%#@@@@@@@@@@@@@@@@@@@@@################################SSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%????????
@@@@@@@@@@@#:                         :?@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################################SSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@S,                       ,+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%
@@@@@@@@@@@@*                        ;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@?                        :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@#,                       ,?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############################################SSSSSSSSSSSSSSS
@@@@@#SSSS+                       ;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############################################################
@S?+:,,                         :?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################################
,                             ,:*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############################################
                               ,,:+%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################