@@@@@@@@@@@%,              +@@@@@@@@@@S%*+;:,  ,:;+*?S#@@##S%?*:                         ;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@#:              *@@@@@@@@@@@@@@@@@#S%*+;:,,,,::+*?*+:,                     ,:;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@;              *@@@@@@@@@@@@@@@@@@@@@@@@@@#S?*+:,                         :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@?              ?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%;,,                   ,;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@#,             *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S*,        ;:         ,:;;+*?%SS#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@?             +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;:::,,;+?;,               ,   ,,:;++*?%SS##@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@:            ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@%S@@;                ,%S%?*+;;:,,   ,,,:;+++++:;+?%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@S,            *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%                  :S@@@@@@@@##S%?*+;;:,        ,,;+**?%%SS##@@@@@@@@@@@@@@@@@@@@@
@@@@@@@?            ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%                   +@@@@@@@@@@@@@@@@@@S,        :,,      ,,,::;;+**??%%SS###@@@@@
@@@@@@@*            ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,                   ,;%@@@@@@@##S%?*+;;:       :%@@##S%?*+;;:,,         ,,,,:::;;+
@@@@@@@;            ?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                      ,+S?*+;::,,          ,:*S@@@@@@@@@@@@@@@#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?*++*%#@#:                                                             ,%@@@@@@@@@@@@@@@@@@@@##SS%?*+;;:,,                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;                                                           ::;S@@@@@@@@@@@##S%%?*+;;:,,                              
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                                                          :@@@@@##S%?**+;::,,                                        
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                                                          ,*+;;:,,,                                                  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S???S%?:,                                                                                                            
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S%*+**;:,,,                                                                                                 
@@@@@@@@@@@@@@@@######SSSS%%%%??****+++;;;;:::::,,,,,                                                                                                 
****++++;;;;;:::::,,,,,,,                                                                                                                             
                                                                                                                                                      
                                                                                                                                                      