@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SS%%?*++;:,               ,:;;;++**???***+++;;;::::::::;;;+++**************?
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%??*++;:,,             ,:;;+++**????**+++;;;::::::::;;;+++**************?
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%?**+;:,,,         ,,,:;;++***????**++++;;;:::::;;;;;;;:::,;+*******???
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%?**+;;::,,,,,,,,::::;;+++**?????**++++;;;;:::;;;:,,;;,  ,,,;?????????
@@###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%?**++;;::::::;;;;;;;;+++**?????**+++++;;;;;;;:, ,:;, ,+??*??????????
###S%?***?%S#@S?**%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%??**++;;;;;;++++;;;;+++***??***++++++;::::::, ,:,  :*%%%%%%%???????
#######S%?;,,:,   :S#SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%%??**++++++++++++++++********+++++;,,            ;?%%%%%%%%%????%%
######@@@%;       ::,, ,,,:+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SS%%??**************+*********+++++:               ,;?%%%%%%%%??%%%%
########+                   :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%%????********************+++++:,                ;%%%%%%%%%%%%%%
########S%?%%:              ,?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSSS%%?????????*************++++++:,                :%%%%%%%%%%%%%%
########@@@@%                 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSS%%%%%??????***********+++++;:                 ,?%%%%%%%%%%%%%%
#########@@@+                ,;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%%%%%%???**********+*+;,                 ,;?%%%%%%%%%%%%%%%
SSSS######@@%,               *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%%%%%??****+++****+,                ,:+?%%%%%%%%%%%%%%%%%
SSSSS########;               ,*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSSS%%%??****++++*+:                ,;*?%%%%%%%%%%%%%%%%%%%
SSSSSS######@+                 ,:*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSS%%%??***++++;, ,              ,+???%%%%%%SSS%%%%%%%%%%
SSSSSS#######:                     +#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%??***+++;,,,                ;??%%%SSSSSSSS%%%%%%%%%
SSSSSS####@#;                       ,+%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%??**++; ,,                  *%%SSSSSSSSSSS%%%%%%%%
###SSS###@%:                           ,+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSS%??**+; ,,                  ,+%SSSS##SSSSSSSS%%%%%%
#########*,                              +@@@@@@@@@@@@@@@@@############@@@@@@@@@@@@@@@@@@@@#####SSS%%??*+ ,:                    ,:SSS######SSSSSSSS%%%
#######S;                               ;#@@@@@@@@@@@@@##################@@@@@@@@@@@@@@@@@@###SSSS%%??**, :,                    ,+###########SSSSSSSSS
######S:                                S@@@@@@@@@@@@@######################@@@@@@@@@@@@@@@###SSS%%??*++ :,                      :S###########SSSSSSSS
######:                :,               S@@@@@@@@@@@@########################@@@@@@@@@@@@@@###SSS%??**+:,;,                  +,   ;#############SSSSSS
####@?                :S,   ,,          %@@@@@@@@@@#######SSSSSSSSSS#########@@@@@@@@@@@@@@###SS%%??**+;;;,,,               :S;   ,S@@@@@@###########S
####@?                ?%;;              +@@@@@@@@@#######SSSSSSSSSSSSSS######@@@@@@@@@@@@@@###SS%%???*++++;;:               ;?*    S@@@@@@@@@#########
###@@%               +@?#%              ,S@@@@@@@@#####SSSSSSS%%%%%SSSSS#####@@@@@@@@@@@@@@###SSS%%??**++++;,                      *@@@@@@@@@@@#######
@@@@@*              :#@#@?               ;@@@@@@@@#####SSSS%%%%%%%%%SSSSS####@@@@@@@@@@@@@@@##SSS%%??*+++++;:                       ,+S@@@@@@@@@######
@@@@@*,,     +,:,  ,#@@@*                 *@@@@@@@####SSSS%%%%%%%%%%SSSSS#####@@@@@@@@@@@@@###SSS%%??**+++++:                          ;%@@@@@@@######
@@@@@S: ,,,,*@%+:  :S@@*                   %@@@@@@####SSS%%%%%%%%%%%%SSSS######@@@@@@@@@@@@###SSS%%??**+++++,                            *#@@@@@@#####
@@@@@@#?*S##@@@*  , +@*                    ,S@@@@@####SSS%%%%%%%%%%%%%SSSS######@@@@@@@@@@@####SS%%%??**++++,                             :%@@@@@@####
@@@@@@@@@@@@@@%  +@S#*                      :@@@@@####SSS%%%%%%??%%%%%%%SSSS#####@@@@@@@######SSS%%%???****+,                               ;S@@@@@###
@@@@@@@@@@@@@@#,,%@@+                        ;@@@@@###SSSS%%%%????%%%%%%%SSS#####@@@@@@#######SSS%%%???****;                                 ,+S@@@###
@@@@@@@@@@@@@@@*,S#;                          +@@@@###SSSS%%%%%%??%%%%%%%SSS#####@@@@@#######SSS%%%%???****:                                   ,?@@###
@@@@@@@@@@@@@@@@#?,                            ?@@@@###SSSS%%%%%%%%%%%%%%SSS#####@@@@######SSSSS%%%%????***,                                     +####
@@@@@@@@@@@@@@@#+                              ,S@@@@###SSSSS%%%%%%%%%%%%SSS####@@@@@@###SSSSSSS%%%???????;                                       ?###
@@@@@@@@@@@@@@S:                                :S@@@@###SSSSSSSSSS%%%%%%SSS###@@@@@@##SSSSSSSSS%%%???????:                                       +###
@@@@@@@@@@@@@?,                                  ;S@@@@####SS###SSSSS%%%%SSS###@@@@@@##SSSSSSSSS%%%???????;,                                      :S##
@@@@@@@@@@@S;,                                    :@@@@############SSSSSSSSS##@@@@@@@#SSSSSSSSS%%%%???????+,                                       *##
@@@@@@@@@@?,                                       *@@@@######################@@@@@@@#SSSSSSSSS%%%%???????:                                        +#S
@@@@@@@@@%,                                        ;@@@@@@##@@@@@@@@###@@@@@@@@@@@@@@##SSSSSSSSS%%%???????+,                                     , *SS
@@@@@@@@S,                                         :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSSSSSSS%%%%%%%%%%?:                                 ,,::;*%SS
@@@@@@@@?                                          ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSSSSSSSS%%%%%%%%%%;                               :*%%%%SSSSS
@@@@@@@@?:*;:;;;:                               :++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SSSSSSSSSSS%%%%%%%%?**+:                 ,,:::,,:;*%SSSSSS%%%%
@@@@@@@@@@@@@@@@@*   ,,                ,,,,,  ,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSSSSSSSSSSSSSSS%%%SSSS*    :??,    ,;+?SSSSS%%%%%%%%SS%%%%%%
@@@@@@@@@@@@@@@@@@SSS###*    ,:::    *########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############SSSSSSSSSSSSS%,   *@@%,   :####SSSSSS%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@*    ?@@S,   S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSSSS#S:   *@##+    %###SSSSSS%%%%%%%%%%%%%%