@@@@################@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SS%%%%?????***++;;::,,                                                                   ,,,::;;++*
@@@###################@@@@@@@@@@@@@@@@@@@@@@@@@@###SSS%%%%?????***++;;::,,                                                                   ,,::;;++*
@@###########SS#########@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%%%??????***++;;::,                                                                 ,,,::;;++*
@#########SSSSSSS########@@@@@@@@@@@@@@@@@@@@@@@####SSSSS%%%%%%%???**++;;::,,                                                               ,,:::;;++*
@###########SS############@@@@@@@@@@@@@@@@@@@@@@#####SSSSS%%%%%%%%???**++;;::,,                                                             ,,:::;;++*
@@S%?***?%%S#S?*+*%########@@@@@@@@@@@@@@@@@@@@@@#####SSSSSSSSSS%%%???***++;;:,,                                                           ,,,:::;;++*
@@####S%?+,,:,    +SS%%SS##@@@@@@@@@@@@@@@@@@@@@@#######SSSSSSSSSS%%%???***+;;:,,                          ,,,,,                          ,,,:::;;;++*
@@######S*,      ,;,,  ,,::*#@@@@@@@@@@@@@@@@@@@@#########SSSSSSSSS%%%%%??**+;;:,                        ,,:::,                         ,,,::::;;;;++*
@######%,                   +@@@@@@@@@@@@@@@@@@@@@#########SSSSSSSSSSSS%%??**+;;:,                       ,::;:                        ,,,,,:::;;;;;++*
@######S?**?*               ;%@@@@@@@@@@@@@@@@@@@@##########SSS#SSSSSSSS%%%??*+;::,                      ,:;;;:,                  ,,,,,,,,:::;;;;;;++*
@######SSSS#;                 %@@@@@@@@@@@@@@@@@@@####################SSSS%%?**+;::,,                   ,::;;;+;,                ,,,,,,,,::::;;;;;++++
@@#####SSSSS:                ,*@@@@@@@@@@@@@@@@@@@@#####################SSS%%?**+;;:,,                 ,::;;;;;,                  ,,,,,,:::::;;;;;;+++
@@######SSSS+               ,%@@@@@@@@@@@@@@@@@@@@@@@#####################SS%%??*+;;:,,                ,::;;;:,                    ,,,::::::;;;;;;;+++
@@@######SSS%,               ,*#@@@@@@@@@@@@@@@@@@@@@@#####################SSS%??*++;::,,             ,,:;;;: ,,                  ,,,::::::::;;;;;;;++
@@@@#####SSSS:                 ,:*S@@@@@@@@@@@@@@@@@@@@@@########@@@@@@@#####SS%??*++;;::,,          ,,:;;;: ,,                 ,,,:::;;;::;;;;;;;;;++
@@@@########%,                     +#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SS%%?***++;::,,,,,,,,,,,:;;+; ,:                 ,:::;;+++;;;;;;;;;;;;++
@@@@#######%:                       ,+%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SS%%??**++;;:::::::::::;;++: :                  :;;+++***++;;;;++++++++
@@@@@@####?,                           ,+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SS%??***+++;;;;;;;;;;;+++,,,                  :++**??***+++++++++++++
@@@@@@@@#+                               *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SS%%????***++++++;;;+++; ,,                   ;**?????**++++++++++++
@@@@@@@S; ,                             +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSS%%%%%??****++++++++: ,,                  ,*?????????***+++++;;++
@@@@@@S,                               ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSS%%%%??***+++++++: ,                    ;%%%%???????**++++;;++
@@@@@S,                :,              ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSSS%%%???**+++;++: ,                     *%%%%%?????***+++++++
@@@@@*                ;?                S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####SSSSS%%%%???**+++;;: ,               ,,    ;S%%%%%%???****++++++
@@@@@+               ,S*+:              +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####SSSSS%%%%??**++++;;,,,              ::    ;S%%%%%%???*****+++++
@@@@@+               *@?#?              ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######SSSSS%%%%%??*+++;;;;:,                    ,+?%%%%%?????*****+++
@@@@@:              +@@#@+               ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########SSSSS%%%%%??*+++;;;::,,                      ,;*%%%%????*****++
@@@@#::     ,+ ;,  ;@@@@+                 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######SSSSSSSS%%%??*++;;;::,,                          :*%%????*****++
@@@#@*, ,,,;?@**,  ;#@@+                   %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######SSSSSSSSS%%%??*++;;::,,                             :?%????***+++
####@#%*?SS#@@#:  : ?@+                    ,S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######SSSSSSSSS%%%?**++;::,,                               ,*%%??**++++
####@@@@@@@@@@+ ,?@S#+                      :#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######SSSSSSSSS%%??***+;:,,                                  ;?%?******
###@@@@@@@@@@@% :S@@;                        ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########SSSSSSSS%%?***+;:,,,                                  ,+???****
@@@@@@@@@@@@@@@+;#S:                          ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########SSSSSSS%??**+;;:,,,,                                   :*?????
@@@@@@@@@@@@@@@@@?,                            +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########SSSSSSS%%??**+;;::::,                                    ,+????
@@@@@@@@@@@@@@@#+                               %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########SSSSSS%%??**+;;::::,                                      +%??
@@@@@@@@@@@@@@S:                                ,?@@@@@@@@@@@@@@@@@@@@@@@###############SSSSSS%%??**++;;::,                                       :%%%
@@@@@@@@@@@@#*,                                  :%@@@@@@@@@@@@@@@@@@@@@##############SSSSSSSS%%??**+++;;::,                                      ,%%%
@@@@@@@@@@@S:,                                    ,#@@@@@@@@@@@@@@@@@@@@@##########SSSSSSSSSSS%%%??**+++;;:,                                       ?SS
@@@@@@@@@@*,                                       +@@@@@@@@@@@@@@@@@@@@@####@@###SSSSSSSSSSSS%%%??***+++:                                         ;##
@@@@@@@@@?,                                        :@@@@@@@@@@@@@@@@@@@@@###@@@###SSSSSSSSSSSSS%%??***+++;,                                        ;##
@@@@@@@@%                                          ,#@@@@@@@@@@@@@@@@@@@@###@@@###SSSSS%%%%%%%%%%??***++++:                                      :;?##
@@@@@@@@+                                           %@@@@@@@@#@####################SSSS%%%%%%%%%%??**+++++:                                ,;**??%####
@@@@@@@@*;*;;;++;                               ,+**#@@@@@@@@@@#################SS##SS%%%???%%%%%??**+++++;:::,                          :*S@@@@@@@###
@@@@@@@@@@@@@@@@@?,  ,,,              ,,,,,,,,,+#@@@@@@@@@@@@@@@@@@@@#########SSSSSSSS%%???????????****++++++++;:    ,;;,     :;?%SSS%%%S#@###########
@@@@@@@@@@@@@@@@@@#S####*    ,:;:    ?#@@@####@@@@@@@@@@@@@@@@@@@@@@@@#######SSSS%%%%%????????????******+++++++*+,   :%%?,    %@@@@@@@@@@@############
@@@@@@@@@@@@@@@@@@@@@@@@+    ?@@S   ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###SSS#SSS%%%%%????????????????****++++++**:   :?%%+    *@######################