@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:............-+#@@@@@@%*=:.:@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-                  .*@#=:      %@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-                               -@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                                 -@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                                  .#@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:                               =*##%@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#-                         .       *@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                            *%*+-. =@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=.                           +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*-.                       :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                     .%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:                     :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@%-%@@@@@@@@@@@@@@@@%#:                      +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@=  -#@@@@@@@@@@@@@@@@@#**:.. .            *+=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@*.     :*@@@@@@@@@@@@@@@@@@@%%*-      .***+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@+.         :#@@@@@@@@@@@@*=-:::..       .-*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@
@@@@@@@@@@#=.             +@@@@@@@@@+.                    .:-+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# .
@@@@@@@%+:                 .*@@@@@#:                           *@@@@@@@@@@@@@@@@@@@@@@@#*=-.    
@@@@%+:                      .-+-:                              %@@@@@@@@@@@@@@@@@@%+-.         
@@@@%####-    ##.##-                                            =@@%+*#%%@@@@@%#+-.             
@@@@@@@@@@%=-%@@%@@@*                                            .:       ...                   
@@@@@@@@@@@@@@@@@@@@@*%@@@#-                                                                    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#. -:                             -#@#+-.                           
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:                             *@@@@@@#=.                        
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                            -*@@@@@@@@@@#=. :+#%%#=:   -+*###+ .
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-                            @@@@@@@@@@@@@@@%@@@@@@@@#=#@@@@@@@+@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                           -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+-.:+-                     +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.                    :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                  -%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                   :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                      *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
