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