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