**+++;;;:,,,:::::;;;;;;;;;;::::::,,                   ,,:::::;;::,,                                            ,,,,                                   
**+++;;:,   ,,:;;+++++++;;;;;:::,,,               ,,,,,::;;;;;;;::,,                                          ,,,,,,                                  
+++++;;;::,,,  ,:+++;;;+++++;;::,,              ,,,:::;;;++++++;;:,,                                          ,,,::,,                                 
++++;;;;;;;;;:,  ,,   ,;***++;::,,              ,,::;;+++++++++;;:,,                                          ,,,,,,,                                 
+++++;;;;;;:,,        :;;;;;;;;::,,             ,,::;++++++++++;;:,                                            ,,,,,                                  
++++++;;;;;, ,,              ,,:::,,            ,,::;;++++++++;;:,,                                             ,,,                                   
++++++++++++;;;,               ,:::,,      ,,,,,,,:::;;++++++;;::,                                                                                    
+++++**+++++++,                ::::,,,    ,,,,,,,::::;;++**++;;:,,                                                                                    
;+++*****++++;                 ,:;:,,,    ,,,,,,::::;;++***++;::,                                                                                     
;;++*****+++++:                 ,,:,,,,, ,,,,,,:::;;;+++++++;;:,,                                                                                     
;+++*****++****;,            ,,,   ,,,,,,,,,,,::;;;++++**+++;;:,                                                                                      
++***************;:           ,:,,   ,,,,,,,,:::;;+++*****++;;:,                                                                                      
+****************?**;,          ,,      ,,,,,::;;;+++******++;:,                                                                                      
***??????????????????*:                   ,,,:::;;+++*******+;;,                                                                                      
???????????????????***:                   ,,,,::;;;+++******+;:,                                                                                      
%%%%%%%%%%%%%%%?????*;                     ,,,:::;;+++****+++;:,                                                                                      
%%%%%%SS%%%%%%%???*+::                      ,::::;;;++++++++;:,                                                                                       
SSSSSSSSSSSSSS%%??+::,                      ,::;;;;;+++++;;;;:,                                                                                       
##SSSS###SSSSS%??**+:                        ,;;;;;;;;+;;:::,,                                                                                        
###########SSS%%?**;                       , ,;;;;;;;;;;:::,,                                                                                         
############SSS??*+,                       ,,,:;;;;;:::::,,                                                                                           
############SSS??*;                        ,,,::;;;::::,,,                                                                                            
############SSS??*;                       ,,,::::::::,,,,                                                                                             
@@@@@#######SS%??*:                       ,,,,,,:::,,,,                                                                                               
#@@@@@#####S%%???*:                          ,,,,,,,,                                                                                                 
########SS%%%??*+:    ,                        ,,,,,,                                                                                                 
######SSS%%%?+,,  ,,                             ,,,,                                                                                                 
#####SSS%%%??:   :+;,                                                                                                                                 
#####SS%%%???+,:;*;,                                                                                                                                  
####SSSS%%%????*+,                                           ,,,,                                                                                     
S###SSSSS%%%??+:                                      ,,,,,,,,,,,,                                                                                    
######SSSS%%?:                                      ,,,,,,,,,,,,,,                                                                                    
#######SSS?+:                                      ,,,::::::::::,,,                                                                                   
########S+,                                       ,,,::::;;;;;:::,,                                                                                   
#######?;                                       ,,:::;;;;;;;;;;;::,,                                                                                  
@@@@@#?,                                        ::;;;++++++++++;;;::,,                                                                                
@@@@@*,                                        ,;;;++*********+++;;::,                                                                                
@@@@#:                                         ,+++***??????****++;::,                                                                                
@@@@%,;;,:,,,                                  :*+**???%%%%???***++;:,                                                                                
@@@@@#@@#@###*                                 ;***???%%%%%%????**+;:,                                                                                
@@@@@@@@@@@@@#*;;;;:,                     ,;+++***???%%%%%%%%%%???*+;:,,                                                                              
@@@@@@@@@@@@@@@@@@@##%?+:    ,+*;    ;*++*%%%%%%????%%%%%%%%S%%%??**+;:,                                                                              
@@@@@@@@@@@@@@@@@@@@@@@@+    *##%    %###SSSSSSSSS%%%%%SSSSSSS%%%??**+;:,,                                                                            
@@@@@@@@@@@@@@@@@@@@@@@#:   ;##@S   ,S############SSSSSSSSSSSSSS%%%?**+;:,,                                                                           
@@@@@@@@@@@@@@@@@@@@@@@?   ,%@@#*   ;@@######################SSSS%%%?**+;::,                                                                          