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