@@######SSSSSS%SSSSSSS####@@@@@@@@@@@@@@@@@@@@###S%%??*++;;::,,                                                                                       
@@@#######SSSSSSSSSSSS#####@@@@@@@@@@@@@@@@@@@###S%%?**++;;::,,                                                                                       
@@@@@#######SSSSSSSSSS#####@@@@@@@@@@@@@@@@@@@###SS%??*+++;::,,                                                                                      ,
@@@@@@#####################@@@@@@@@@@@@@@@@@@@###SS%%?**++;;::,                                                                                     ,,
@@@@@@@@@@@###############@@@@@@@@@@@@@@@@@@@@###SS%%?**++;;;:,,                                                                                    ,,
@#S%????%S##@S?**?S######@@@@@@@@@@@@@@@@@@@@@###SS%%??**++;;:,,                                                                                    ,,
@@@@@#S?*;,::,   ,%S%%SS##@@@@@@@@@@@@@@@@@@@@###SS%%%?**++;;:,,                                                                                    ,:
@@@@@@@@#+       ::,   ,,:;%@@@@@@@@@@@@@@@@@@###SS%%%??**+;;:,,                                                                                   ,,:
@@@@@@@?                   ,S@@@@@@@@@@@@@@@@@###SS%%???**+;;:,,                                                                                  ,,::
@@@@@@@S?*?%;              ,+S@@@@@@@@@@@@@@@@###SS%%???**++;::,,,,                                                                               ,,:;
@@@@@@@@@@@#,                :#@@@@@@@@@@@@@@####SS%%???**++;;::::,,,                                                                            ,,:;;
@@@@@@@@##@S                ,:%@@@@@@@@@@@@@@####SS%%%??**+++;;;;;::,,                                                                          ,,::;;
@@@@@@@#####:               :S@@@@@@@@@@@@@@@###SSS%%%???**++++++;;;:,,                                                                     ,,,,,::;;+
@@@@@@######?                ,*S#@@@@@@@@@@@@###SSS%%%???*****+++++;;::,                                                                   ,,,::::;;++
@@@@@@######%,                  :+%@@@@@@@@@@###SSS%%%???**********++;;::,                                                               ,,:::::;;;++*
@@@@@@######*                      +#@@@@@@@@####SSS%%?????????????**++;;:,,                                                           ,,::::;;;;;++**
@@@@@@#####?,                       ,;?#@@@@@####SSS%%%???????????????*++;;:,,                                                       ,,,::::;;;;;;++*?
@@@@@@####+                            ,;S@@@####SSSS%%%%%%????%%%%%%??**++;;::,                                                   ,,,::;;;;;;++++**??
@@@@@@@@S:                               ?@@@#####SSSSS%%%%%%%%%%%%%%%%%??**++;;:,                                               ,,,:::;;;;;+++*****??
@@@@@@@?,                               *@@@@######SSSSSSS%%%%%%%%SSSSSS%%???**++;:,,                                            ,::::;;;;;++******??%
@@@@@@*                                ,S@###@#######SSSSSSSSSSSSSSSSSSSSSS%%??**++;:,,                                          ,:::;;;;;+++*****??%%
@@@@@*                ,,               ,S####@@@##########SSSSSSSSSSSSS###SSSS%%??*++;:,,                                        ,:::;;;;;++++***??%%S
@@@@#,                ;;    ,,          %@##@@@@@#############SS##############SS%%?**++;:,                                       ,,::;;;;;;;;+++**?%%%
@@@@S,               ,?:;,              +###@@@@@@@@###########################SSS%??*++;:,               ,                       ,:::;;;;;;;+++**??%%
@@@@S,              ,*%;%;              ,%#@@@@@@@@@@##################@@@@@#####SS%??*++;:,,       ,,,,,,,,,                     ,,::::::::;;++****??
@@@@?         ,     +%%%?:               ;#@@@@@@@@@@@@@##############@@@@@@@@@###SS%??**+;::,,,,,,,,::::::::,                      ,,,::::::;+++++**?
@@@@*,,     ;,::,  +S%%%:                 *@@@@@@@@@@@@@@@@#@@@#####@@@@@@@@@@@@###SS%%?**+;;:::::::::::::::::,                        ,,:::::;;+++++*
@@@@#: ,,,:+S%+*,  ;%%?:                   %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSS%%?**++;;;;;::::::::::::,                           ,:::::;;;;++
@@@@@#?+%SS###*, ,, ?%:                    ,S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSS%%?**+++++;;;;;;;;;:::,                             ,:::::::;;;
@@@@@@@@#####%  ,%%??:                      :#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%??**+++++;;;;;;;;:::,                              ,,,,,,:::;
@@@@@@@@######+ ;%S?,                        :#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSS%%%?**+++++;;;;;;;;::,,                                ,,,,,:::
@@@@@@@@######S:+%*,                          ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%%?**+++;;;;;;;;;::,,                                    ,,,::
@@@@@@#######SSS%;                             +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSS%%%%%?**+++;;;:;;;::,,,                                     ,,,::
@@@@@@@#####SSS*,                               ?@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%%%%%??**+++;;::::::,,,                                       ,:::
@@@@@@@@#####S+,                                ,?@@@@@@@@@@@@@@@@@@@@@@@@@@###SSS%%%%?????**+++;;:::::,,,,                                        ::;
@@@@@@@@@@@@%;                                   :%@@@@@@@@@@@@@@@@@@@@@@@@@##SSSS%%%??????**+++;;;::::,,,,                                        ,;;
@@@@@@@@@@#?,                                     ,#@@@@@@@@@@@@@@@@@@@@@@@###SSS%%%????????**+++;;::::::,,                                        ,;;
@@@@@@@@@#;                                        +@@@@@@@@@@@@@@@@@@@@@@@##SSS%%%?????????**+++;;;:::::                                           ;+
@@@@@@@@S+                                         :@@@@@@@@@@@@@@@@@@@@@@#SSS%%%%??******??**+++;;;;::::,                                          :*
@@@@@@@@+                                          :@@@@@@@@@@@@@@#@@@@@@#SS%%%%???***********++++;;;;:::,                                          ;*
@@@@@@@@,                                           S@@@@@@@@@@@@@#######SS%%%%???**++********+++++++;;;:,                                     ,,:;;**
@@@@@@@@+*?+++**;                               :**?@@@@@@@@@@@@@######SS%%%?????**++++++++**++++++++;;;:,,,,                             :+******????
@@@@@@@@@@@@@@@@@?,,,,,,              ,::::,,,:*@@@@@@@@@@@@@@@#####SSSS%%%????***+++++++++++++++++;;;;;:::::,,,,    ,:,,     ,;++++;;;:+?SSS%%%??????
@@@@@@@@@@@@@@@@@@###@@#+    ,;;:    %@@@@@@#@@@@@@@@@@@@@@@@#####SSSSS%%%???***+++;;;;;;;;;;;;;+;;;;;;;;::::::::,   :*?*,   ,%@@@@@@@####SSSSS%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@;   ,%@@%   ,#@@@@@@@@@@@@@@@@@@@@@@#####SSS%%%%%???**++++;;;;;;;;;;;;;;;++;;;;;;::::::::,   :??%+    ?@@@@@@@########SSSSS%%%