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