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