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