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