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