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