       ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:                                                                                                          
       +%?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:                                                                                                          
::,,,  , ;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,                                                                                                          
+++++;;::;:*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,                                                                                                          
SSSSSS%%????%S##@@@@@@@@@@@@@@@@@@@@@@S@@#:     :;;,                                                                                                  
%S#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*%@#; ,::+S##+,                                                                                                 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+,;S#***?%#@@@@#?;,                                                                                               
@@@@@@@@@@@@@@@@@@@@@@@@@@#?***?@@#?*?%@##@@@@@@@@@@@#%*:,                                                                                            
@@@@@@@@@@@@@@@@@@@@@@@@@@@?*?%#@##@@@@@@@@@@@@@@@@@@@@@#%+:,                                                                                         
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%*+:,                                                                                     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%?*;:,,                                                                               
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S%%?++;::,,,                                                                     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S%%?**+;:,                                                            
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S?+:,                                                       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S+,                                                     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S;                                                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?,                                                  
@@@@@@@@@@@@@@@@@@@@S%#@@@@@@@@@@@#+*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+                                                 
@@@@@@@@@@@@@@@@@@*,, ,:;+*;*%*::;;,;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:                                               
@@@@@@@@@@@@@@@@S;    ,;+;          ,S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,                                             
@@@@@@@@@@@@@@@?,   :;?S##?,         ;+@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S;                                            
@@@@@@@@@@@@@@*  ,:+*%#@@@#:          ,+,*%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?,                                          
@@@@@@@@@@@@@+ ,;+?%#@@#?;,             :*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+                                         
@@@@@@@@@@@@*:+*?%#@@S+,               ,;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:                                       
@@@@@@@@@@@%*?%S#@@%;                   :%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                                      
@@@@@@@@@@@###@@@?:                    ,;+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S:                                    
@@@@@@@@@@@@@@@?,                       ,*SS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                                   
@@@@@@@@@@@@@@S+;,                       ;?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:                                 
@@@@@@@@@@@@@@@@@#?:                     ,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@#+                                
@@@@@@@@@@@@@@@@@@@@?:                   ,+%@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@S:                              
@@@@@@@@@@@@@@@@@@@@@@*,                  ,+?*?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?:                            
@@@@@@@@@@@@S@@@@@@@@@@S,                   ,:%@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@#@@@@@@@@@@@@@@@@@@@@@@@*,                          
@@@@@@@@@@@@?;*S#@@@##S?,                    ,+*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*:,+;+:;?@@@@@@@#@@@@@@@@@@@##@#+,                        
@@@@@@@@@@@@@?  ,,,,,                       ,:+%#@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+        :+*+;??%@@@##@@@@@@@??#@#*,                      
@@@@@@@@@@@@@@;                            ,;+?#@@@@@S%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+              ,:*S#++#@@#@@@@*:+%@#*,                    
@@@@@@@@@@@@@@?                            ,,;%SS@@S;;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                 ,,  :*+:?##%#+  :+*+,                   
@@@@@@@@@@@@@@S                              ,,:%#+, :*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?                          ,:,::                          
@@@@@@@@@@@@@@*                                 ,,   ,;%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?                                                         
@@@@@@@@@@@@@@:                                      ,;;*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?                                                         
@@@@@@@@@@@@@%                                       ,,;%%%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?                                                         
@@@@@@%%@@@@@;                                         :;+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?                                                         
@@@@@@;,;S@@%                                          ,,:?%?S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                                                         
@@@@@#,   ;*,                                            ,, ;*?S@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                                                         
@@@@@S                                                     ,;*?S@@@@@@@@@@@@@@@@@@@@@@@@@@@@;                                                         
@@@@@?                                                     :+;?@#S@@@@@@@@@@@@@@@@@@@@@@@@@@:                                                         