@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####S%%??***+++++++;+++***???%%%%SSSSSS%%%%???%%%%???%%%%%%%SSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%%??*****+++++++***???%%%%SSSSSS%%%%????%%????%%%%%SSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%%????***********?????%%%SSSSS%%%%?????????%%%%%SSSSS?%SSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSS%%%????????***???????%%%%%%%%%%%????????%%%%%S?*S#?;,*%S########
#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSSSS%%%%%?????????????%%%%%%%%?????????%%%%%%?;+S%+  ,,*#########
###S%?***?%S#@#%**?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSS%%%%%%%???????????%%%?????????**++++**;,*%+,:%S############
####@@##S%+,,:,   ,%@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSSS%%%%%?????????????*******+:,        ,;,,?###############
######@@@S+,      :;,, ,,,:+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSSS%%%%%???????????******;              ,+###############
#######@*                   ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSSSS%%%?????????****+***;,               ;##############
######@@#%%%S;              ,?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSSS%%%????????****+++++:                 S@############
######@@@@@@S,                +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSSS%%?????*****++++++;,                +#@@@@@@@@@####
#######@@@@@?                 :#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%%???****++++**+:,               ,*##@@@@@@@@@####
########@@@@S,               +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSSS%%??***++++*+;,               ,+S@@@@@@@@@@@@####
#######@@@@@@+               ,*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSS%%?***++++;,               ;?#@@@@@@@@@@@@@@####
#######@@@@@@*                 ,:*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSSS%%?****+;,               :*####@@@@@@@@@@@@@####
######@@@@@@#:                     +#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####@@@@@@@@@@@@@@@@@@@@@@@@@###SSS%%%?***+,                 :S###@@@@@@@@@@@@@@####
#####@@@@@@#;                       ,+%#@@@@@@@@@@@@@@@@@################@@@@@@@@@@@@@@@@@@@@@@####SS%%%?**;                   ,?##@@@@@@@@@@@@@@@@###
####@@@@@@S:                           ,+S@@@@@@@@@@@@#####################@@@@@@@@@@@@@@@@@@@#####SS%%??*:                    ,*S@@@@@@@@@@@@@@@@@###
#@@@@@@@@?,                              ;@@@@@@@@@@########################@@@@@@@@@@@@@@@@@#####SSS%%%*,,:,                   ;;S@@@@@@@@@@@@@@@@@##
@@@@@@@#+                               ;#@@@@@@@@@#########SSS##SSSSSS######@@@@@@@@@@@@@@@@####SSS%%%?:,;,                    ,*@@@@@@@@@@@@@@@@@@##
@@@@@@#:                                %@@@@@@@@@#########SSSSSSSSSSSSS#######@@@@@@@@@@@@@####SSS%%??;,+:,                 ,   :#@@@@@@@@@@@@@@@@@@#
@@@@@@;                :,               %@@@@@@@@@########SSSSSSSSSSSSSSS#######@@@@@@@@@@@@####SSS%%?*:*+,:                ,?,   ;@@@@@@@@@@@@@@@@@@@
@@@@@%                ,%,               %@@@@@@@@@#######SSSSSSSSSSSSSSSSS#######@@@@@@@@@@@@###SSS%%?***;+:,               ;@;   ,#@@@@@@@@@@@@@@@@@@
@@@@@%                *%:;              +@@@@@@@@@#####SSSSSSS%%%%%%%%SSSSSS####@@@@@@@@@@@@@###SSS%%???***+:               ;%?,   S@@@@@@@@@@@@@@@@@@
@@@@@%               ;@%SS              ,S@@@@@@@@######SSSSS%%%%%%%%%%SSSSS######@@@@@@@@@@@###SSS%%???***+,                      *@@@@@@@@@@@@@@@@@@
@@@@@?              ,#@#@?               ;@@@@@@@@@####SSSSS%%%%%%%%%%%SSSSS######@@@@@@@@@@####SSS%%???****,                       ,+S@@@@@@@@@@@@@@@
@@@@@?,,     ;,:,  ,S@@@*                 *@@@@@@@@#####SSSS%%%%%%%%%%%SSSSS#######@@@@@@@@#####SSS%%%??****,                          ;S@@@@@@@@@@@@@
@@@@@#:  ,,,*#S*;  ,S@@*                   %@@@@@@@@####SSSSSSS%%%%%%%%SSSSSS######@@@@@@#######SSS%%%?????+                            ,*@@@@@@@@@@@@
@@@@@@#?+%#S@@@?  , :@?                    ,S@@@@@@@#####SSSSSSSSSSSSSSSSSSSS###################SSSS%%%????+                              ;S@@@@@@@@@#
@@@@@@@@@@@@@@S, ;#SS*                      :@@@@@@@#####SSSSSSSSSSSSSSSSSSSS#################SSSSSS%%%????;                                ;%@@######
@@@@@@@@@@@@@@@: ?@@+                        +@@@@@@@######SSSSSSSSSSSSSSSSSS###############SSSSSSS%%%%????:                                  ;S@#####
@@@@@@@@@@@@@@@?,S#;                          *@@@@@@########SSSSSSSSSSSSSS###############SSSSSSSS%%%%????*,                                   ,*#####
@@@@@@@@@@@@@@@@#?,                            ?@@@@@##########SSSSSSSSSSSS#########@####SSSSSSS%%%%%?????+                                      ;S###
@@@@@@@@@@@@@@@#+                              ,#@@@@@################SSSS#########@@@###SSSSSSS%%%%%?????:                                       ?###
@@@@@@@@@@@@@@S:                                :S@@@@@@@########################@@@@@###SSSSSSSS%%%%%????,                                       ;##S
@@@@@@@@@@@@@?,                                  ;#@@@@@@@@######################@@@@@#######SSSSSS%%%%???:                                       ,%#S
@@@@@@@@@@@S;,                                   ,+@@@@@@@@@@@###################@@@@@##########SSSSS%%%%%*,                                       +SS
@@@@@@@@@@%,                                      ,%@@@@@@@@@@@@@@############@@@@@@@@###########SSSSSS%%%;                                        ;SS
@@@@@@@@@%,                                        +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############SSSSSSSS?,                                     ,,?SS
@@@@@@@@S,                                         +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############SSSSSSSS;                                ,::;;+?SSS
@@@@@@@@%                                          :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################SS#*                              ,+?%%SSSSSSS
@@@@@@@@%:+::;;;:                               :;+?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################S%%?+,                ,:;;;::;+?S%%%%%%SSSS
@@@@@@@@@@@@@@@@@;   ,,                ,,,,   ,?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#############@*    +S?,    ,;*%S##SSSSSS%%%%%%%%SSSS
@@@@@@@@@@@@@@@@@@SSS##S*     :::    +#####SSS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########@%    %@@*    +@@####SSSSSSS%%%%%SSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@*    *@@#,   S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@S,  ,S@@@:   :#######SSSSSSSSSSSSSSSSS