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