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