@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSSS%%%%%%?????****+++++;;::,,,,                                                           
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSSS%%%%%%??????****++++;;;::,,,,                                                          
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSSSSSS%%%%%%??????*****++++;;;:::,,,                                                         
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSSSSSS%%%%%%%?????*****++++;;;;:::,,,                                                        
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################SSSSSSSSSS%%%%%%??????*****++++;;;;::,,,,                                                       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################SSSSSSSSSS%%%%%%%??????*****++++;;;;:::,,,                                                      
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################SSSSSSSSSSS%%%%%%%?????*****+++++;;;::::,,,,                                                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################SSSSSSSSSS%%%%%%%??????*****+++++;;;;::::,,,,                                                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################SSSSSSSSSSS%%%%%%%%?????*****+++++;;;;::::,,,,                                                 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################SSSSSSSSSS%%%%%%%%??????*****+++++;;;;::::,,,,,                                               
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################SSSSSSSSSSS%%%%%%%%??????*****+++++;;;;;::::,,,,,                                             
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSS%%%%%%%%??????******+++++;;;;:::::,,,,,                                           
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSS%%%%%%%%???????*****+++++;;;;;:::::,,,,,                                         
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSS%%%%%%%%%??????******+++++;;;;::::::,,,,,                                       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSS%%%%%%%%%???????*****+++++;;;;;:::::::,,,,                                     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSS%%%%%%%%%???????******+++++;;;;;:::::::,,,,,                                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSS%%%%%%%%%???????******+++++;;;;;;::::::,,,,,,                               
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSS%%%%%%%%%????????******++++++;;;;;:::::::,,,,,,                            
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSS%%%%%%%%%????????******++++++;;;;;;:::::::,,,,,                          
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%*?S@@@@@@@@@###@@#################SSSSSSSSSSSSS%%%%%%%%%%????????*******++++++;;;;;;:::::::,,,,,,                      
@@@@@@@@@@@@@@@@@@@@@@@@@@@#;,  ,+S@@@@@@@@@@S%??#################SSSSSSSSSSSSSS%%%%%%%%%%????????********++++++;;;;;;::::::::,,,,,,                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@+     :?@@@@@@@S?;, ,*##################SSSSSSSSSSSSSSS%%%%%%%%%%?????????*******+++++++;;;;;;;:::::::,,,,,,,              
@@@@@@@@@@@@@@@@@@@@@@@@@@#,     ,*#@@@@#*,   ,*#####################SSSSSSSSSSSSSSS%%%%%%%%%%%?????????********+++++++;;;;;;;:::::::,,,,,,,,         
@@@@@@@@@@@@@@@@@@@@@@@@@@S      :?@@@@?,    ,?########################SSSSSSSSSSSSSSS%%%%%%%%%%%??????????*********++++++++;;;;;;;:::::::,,,,,,,,,   
@@@@@@@@@@@@@@@@@@@@@@@@@@?      ;%@@#+     :?@@####@#SSS################SSSSSSSSSSSSSSSS%%%%%%%%%%%%?????????*********+++++++++;;;;;;;;;::::::,,,,,,,
@@@@@@@@@@@@@@@@@@@@@@@@@@*     ,+S@S:     :%@@@@@#%+:,,+S#################SSSSSSSSSSSSSSSS%%%%%%%%%%%%???????????**********++++++++++;;;;;;;;;;::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@;     ,+#%,     :%@@@#?;,   ,*#####################SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%????????????***********++++++++++++;;;;;;;;
@@@@@@@@@@@@@@@@@@@@@@@@@S,     ,++      :%@@%+,    :*S@########################SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%?????????????*************+++++++++++++
@@@@@@@@@@@@@@@@@@@@@@@@@*      ,,      :%#?:    ,;?#@############################SSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%??????????????***************+++++
@@@@@@@@@@@@@@@@@@@@@####,             :**,    ,;%@@@@@@@@@@@########################SSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%????????????????*************
@@@@@@@@@@@@@@@@@@%*;::;:             ,:,     :%@@#S%?*++++++?S#########################SSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%???????????????????**?
@@@@@@@@@@@@@@@@@;                          ,;?*;:,       ,;*S##############################SSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%???????????????
@@@@@@@@@@@@@@@@@;                          ,,     ,,:;+?%#@@@#################################SSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@S,                            :+?%S#@@@@@@@@@@@@###################################SSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@*                         ,*S#@@@@@@@@@@@@@@@@@@@######################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@;                       ,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@;                       ;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@;                       ,?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############################################SSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@?                       ,*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###############################################################
@@@@@@@@@@@@@@@@@:                      ,*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###########################################################
@@@@@@@@@S%?*+++:                      ;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######################################################
@@@@@S?;,                            :?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################
@@#*:                               ,;?S#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########################################
S*,                                   ,:+?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################################
,                                        ,;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####@@@@@