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