@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSS%%%%%%%%%%%%%%%%%%%%%%%%%SSSSS#########@@@@@@@@@@@@@@@@@
###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSSSS%%%%%%%%???%%%%%%%%%%%SSSSS########@@@@@@@@@@@@@@@@@@
###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSSSS%%%%%???????%%%%%%%%%SSSSS#######@@@@S?+?#@@@@@@@@@@
###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSSS%%%%?????????%%%%%%%%SSSS######@#%S@?  ?@@@@@@@@@@@
######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSS%%%??????????%%%%%%%%SSS#####@#%;%#*::S@@@@@@@@@@@@
###S%%****%S#@#%?*?S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSS%%%????????%%%%%%%%%S%%?*???%%;:SS; +#@@@@@@@@@@@@@
###@@@@#S%*,,:,   ,?@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%?????????????%%%%?+:,        :; :S@@@@@@@@@@@@@@@
####@@@@@#*,      ,;:, ,,,:+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%?????????????%%%%;              :?@@@@@@@@@@@@@@@
###@@@@@%,  ,,              ,%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%??????????????%%%+,               ?@@@@@@@@@@@@@@
##@@@@@@#S%S#+              ,*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%???????????????%*,                :@@@@@@@@@@@@@@
##@@@@@@@@@@#,                ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%????????????????*,                ?@@@@@@@@@@@@@@
#@@@@@@@@@@@%                 ,S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%%%????????????%%%+,              *@@@@@@@@@@@@@@@
@@@@@@@@@@@@#:               ;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSS%%%???****???%%%*,             :%@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@*               ,+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSSS%%????*???%?+:             ,*@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@?                 ,:*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSS%%????????+,              ;#@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@;                     +#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@####SSSS%%?????*;,              ,:%@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@;                       ,+%#@@@@@@@@@@@@@@@@@@@@@@@@@@######@@@@@@@@@@@@@@@@@@@@@@@####SSSS%%%??+:                  :@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@S:                           ,+S@@@@@@@@@@@@#######@@@#########@@@@@@@@@@@@@@@@@@@@@@####SSSS%%%%;                    ;S@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@?,                              :@@@@@@@@@@@@###################@@@@@@@@@@@@@@@@@@@@@@####SSSSS%?; ,                   ;;S@@@@@@@@@@@@@@@@@@@
@@@@@@@@+                               :#@@@@@@@@@@@####################@@@@@@@@@@@@@@@@@@@@@@#####SSSS%:,;:                   ,S@@@@@@@@@@@@@@@@@@@@
@@@@@@#:                                %@@@@@@@@@@@@####################@@@@@@@@@@@@@@@@@@@@@#######SS%:;?:,                    +@@@@@@@@@@@@@@@@@@@@
@@@@@@;                ,,               %@@@@@@@@@@@@####################@@@@@@@@@@@@@@@@@@@@@########S*?%;+;                :    ?@@@@@@@@@@@@@@@@@@@
@@@@@%                ,?,               %@@@@@@@@@@@@@####################@@@@@@@@@@@@@@@@@@@@#######SSSS??*,               ?#,   ;@@@@@@@@@@@@@@@@@@@
@@@@@%                *%;+              +@@@@@@@@@@@@@######################@@@@@@@@@@@@@@@@@@######SSSSSSS*:              ,*%+   :@@@@@@@@@@@@@@@@@@@
@@@@@%               :@%SS              ,S@@@@@@@@@@@@@#####################@@@@@@@@@@@@@@@@@######SSSSSSSS%,                     ,%@@@@@@@@@@@@@@@@@@
@@@@@?              ,S@#@%               :@@@@@@@@@@@@@@####################@@@@@@@@@@@@@@@@@######SSSSSSSS*                        :*#@@@@@@@@@@@@@@@
@@@@@?,,     ;,:,  ,%@@@?,                *@@@@@@@@@@@@@@##################@@@@@@@@@@@@@@@@@#######SSSSSSSS+                          ,+#@@@@@@@@@@@@@
@@@@@@:  :,:?#%*+  ,%@@?                   %@@@@@@@@@@@@@@################@@@@@@@@@@@@@@@@@########SSSSSSSS+                            ,?@@@@@@@@@@##
@@@@@@#%*%##@@@%, ,,:@?                    ,#@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@@###########SSSSSS;                              ;%@@@@@@####
@@@@@@@@@@@@@@#, :#SS*                      :@@@@@@@@@@@@@@@@@@@########@@@@@@@@@@@@@@@@@#############SSSSS:                                ;%@@######
@@@@@@@@@@@@@@@; *#@+                        +@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@#############SSSS%,                                  ;%@#####
@@@@@@@@@@@@@@@%,%S;                          ?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############SSSS*                                     +#####
@@@@@@@@@@@@@@@@#?,                           ,%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########SSSSS;                                      :S###
@@@@@@@@@@@@@@@#+                              :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########SSSS%,                                       *###
@@@@@@@@@@@@@@%:                                ;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########S#?                                        :###
@@@@@@@@@@@@#*,                                  +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######S:                                        ?##
@@@@@@@@@@@S;,                                   ,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####?,                                       +##
@@@@@@@@@@?,                                      ,S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####;                                        ;##
@@@@@@@@@%,                                        ?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##?,                                     ,:?##
@@@@@@@@S,                                         ?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#;                                ,;+*+?S###
@@@@@@@@%                                          +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?                              :?##########
@@@@@@@@%:+:;;;;,                               :;+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS%+,     ,         ,:;++++++?############
@@@@@@@@@@@@@@@@#:   ,                 ,,     :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:   ,%#*     ;*?S@@@@@@@@@##########@@
@@@@@@@@@@@@@@@@@@SS###S*     ,::    +####SSSS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*   :@@@;    %@@@@@@@@@###########@@@@
@@@@@@@@@@@@@@@@@@@@@@@@*    *@@#,   S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%   ;@@@S,   *@@@@@@@@@@@@####@@@@@@@@