````;++++'';,                                                                               
                                                                                                          .,+#+++#++++;+##'`                                                                            
                                                                                               `  :'+++++########++++++''+++'`                                                                          
                                                                                              :++####++++++###########+++;++++;                                                                         
                                                                                             +++#########################+;+''+'                                                                        
                                                                                        .``.++#############################+';+++                                                                       
                                                                                     `'+#####################################+'+++                                                                      
                                                                                   `;;'+++###############################+####';++'`                                                                    
                                                                                  ..+######################################+###++++;                                                                    
                                                                              ,:'+++#####################################+###++#'+++,                                                                   
                                                                            .    +++######################################+##+#+#'+++                                                                   
                                                                           :   .+#############################################++#++++'                                                                  
                                                                         .` .'############################################+++#+###++++                                                                  
                                                                         .,++############################################+++++++#+++++;                                                                 
                                                                         '##########++#################################++++++++++##+#++`                                                                
                                                                        ++########+#################################++++++''''''+++#+++:                                                                
                                                                       +###+++###+###############################+++++++'''''''''''+++++:                                                               
                                                                      '++++#####++############################++++++++'''''''''''''''++++;                                                              
                                                                     :'+#'++++++#####++++++++++++++++#####+++++++++++'''''''''''''''''+#++'                                                             
                                                                     ''+++#'#+++#+#++++++++++++++++++++++++++++++++'''''''''''''''';;;'+'++                                                             
                                                                    ,;++##+++++###++++++++++++++++++++++++++++++'++'''''''''''''''';;;;'+++'                                                            
                                                                    '++####'+++#++++++++++++++++++++++++++++'++'++++++''''''''''''';;;;''++'                                                            
                                                                    '+####'''''''+++++++++++++++++++++++++'''+''''''''''''''''''''';;;;;'+#+                                                            
                                                                   .+++#+';''''''''''''''''''''''+++++++''''''''''''''''''''''''''''''';;'+#'                                                           
                                                                   ,++##+;;;''''''''''''''''''+''++++'+'''''''''''''''''''''''''''''''';;;'++;.                                                         
                                                                   ++##+;;;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''++;                                                         
                                                                  `++#+';;;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;'++'                                                         
                                                                  ++++';;;''''''''''''''''''''''''''''''''''''''''''''''''+'''''''''''''';;''#+`                                                        
                                                                  +++';;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;'++;` `                                                     
                                                                  +++';;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;'#'                                                        
                                                                 .'+';;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;'++;                                                       
                                                                 `''';;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;'++',                                                      
                                                                 ''';;:;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;'+++`                                                      
                                                                 ;'';;:;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;''++;                                                      
                                                                `'';;::;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''++'`                                                     
                                                                ;'';;::;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++                                                      
                                                                ;'';;::;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''++,                                                     
                                                                ;';':::;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''++'                                                     
                                                                '':;:;:;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++                                                     
                                                               ,;':;:::;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++                                                     
                                                               :;':;:::;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''+++                                                     
                                                               :';;;;:;;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++`                                                    
                                                               ,';;;::;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''''+++                                                     
                                                               ,;';:::;:;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''++++                                                     
                                                               :;';::;::;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''++++                                                     
                                                               ,;':::::;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;'++++                                                     
                                                               ,;':,::::;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''++++.                                                    
                                                               .;::,::::;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''+++                                                     
                                                               `;;:,::::'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''+++                                                     
                                                                :;:,::,;;''''''''''''''''''''''''''''''''''''''''''''''''''''++'''++'''''''';;''+++                                                     
                                                                ;':.::,;;'''''''+++++++++''''''''''''''''''+''''''''''''''''+++++++++++''''';;;'++#                                                     
                                                                ;':.,,,;''''''++++++++++++''''''''''''''''++''''+''''''''++++++++++++++''''';;''+++                                                     
                                                                ;':.,,:;'''''++++++++++++++++++++++''+''''+++'''++'++++++++##+####++++++++''';;'+++                                                     
                                                                :;:.,.:''''++++++++++++++++++#++++++'+''''+++'''++++++#############++#++++++';;'++;                                                     
                                                                ;;:.,.;'++++++++++++#+#########++++++''''''+++++++++++#################+##++';;'++'                                                     
                                                                ;;:.,.;'+++++++++++############+++++++'''''''+++++++++#################++++++;;'++'                                                     
                                                                ;;:.,,''+++++++++###############++++++'''''''++++++++#################+##++++';;++:                                                     
                                                                ,':.,:''+++++++++###############+++++++'''''''++++++################+++++++++';;++`                                                     
                                                                 ;:.:;'''''+++++++++###########++++++++'''''''++++++++#########++++++++++++++'';++                                                      
                                                                 ;:,.,;'''++++++++++++++++####++++++++'''''''''++++++#######++++++++++#++++++'';++                                                      
                                                                 ;:,,:;''''+++++++++++++++++++++++++++'''''''''+++++++###++++++++++++++++++''+';++                                                      
                                                            ;',  ',:.:;''''+++++++++++++++++++++++++++'''''''''+++++##++##########+''''#+''''';;++                                                      
                                                           :;;;'`',,,;''''+++'''++#+#####+++++++++++++'''''''''++++++++#++##########+''+++'''';;++                                                      
                                                          .;;;'''',,:;''''+'''++#+##+++++#++++++++++++'''''''''+++++#+++++#######'+###''++'''';;++                                                      
                                                          :;;;'';;,,:;'''''''+++++'+++++++++++++++++++''''''''''++++#+++++#######'''+##++''''';;'+''',                                                  
                                                          :;'';'';,:;'''''''+++''''+++++++++++++++++++''''''''''++++++++++######+''+++++++''''';'++'''`                                                 
                                                          :;;'';;;,:;'''''''''+++'''+++++++++++++++++''''''''''''++++++++++++##++++++'++++++''';'++'+';                                                 
                                                          :;;;';;;,:;''''''''''++++'++++++++++++++++'''''''''''''++++++++++++++++++'''''++''''';'+++++'                                                 
                                                          :;;;'';:,;;'''''''''''''+++'+'++++++++++++''''''''''''''++++++++++++++++'''''''''''''''+++++'                                                 
                                                          :;;;;;;,::;'''''''''''''''''''+++'+++++++'''''''''''''''+++++++++++++++'''''''''''''''''++++'                                                 
                                                          .;;;;;;,,:;'''''''''''''''''''''''''+++''''''''''''''''''++++++++++++++''''''''''''''';'#+++'                                                 
                                                           ;:;;';,,:;;''''''''''''''''''''''''++''''''''''''''''''''+''+++++++++''''''''''''''''''#'++'                                                 
                                                           ;;;'';,,,;'''''''''''''''''''''''''''''''''''''''''''''''''''++++++++''''''''''''''''''+''+'                                                 
                                                           ;;;'';,,,;;''''''''''''''''''''''''''''''''''''''''''''''''''''+++++'''''''''''''''''''#''+'                                                 
                                                           ;;'''':,:;;''''''''''''''''''''''''''''''''''''''''''''''''''''''+++''''''''''''''''';'+''+'                                                 
                                                           ,;;'';:,,;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''++''+'                                                 
                                                           `:;'';;,,:;;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';++''+'                                                 
                                                            :;'';;,,:;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;++''+,                                                 
                                                            :;;';'.,:;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;#+'''`                                                 
                                                            :;;'''.,:;;'''''''''''''''''''''''''''''''''''''''''';;'''''''''''''''''''''''''''';'+''''                                                  
                                                            :;;;';,,:;;'''''''''''''''''''''''''''''''''''''''''';;'''''''''''''''''''''''''''';+'''''                                                  
                                                            :;;;;;,,::;;''''''''''''''''''''''''''''''''''''''''';;'''''''''''''''''''''''''''';++''',                                                  
                                                            `:;;;;:.:;;;''''''''''''''''''''''''''''''''''''''''';;''''''''''''''''''''''''''';;'+'''                                                   
                                                             :;;;;;.,;;;''''''''''''''''''''''''''''''''''''''''';;''''''''''''''''''''''''''';;'''''                                                   
                                                             .:;;;;,,;;;'''''''''''''''''''''''''''''''';'''''''';;''''''''''''''''''''''''''';;'''''                                                   
                                                              ::;;;,:;;;''''''''''''''''''''''''''''''''''''''''';;;'''''''''''''''''''''''''';''''',                                                   
                                                              .::;;:::;;;'''''''''''''''''''''''';;'''';;;'''''';;;;;''''''''''''''''''''''''';'''''                                                    
                                                               :::;;,:;;;''''''''''''''''''''''';;'''';;;'''''''';;;;;'''''''''''''''''''''''';'';';                                                    
                                                               `,::;::;;;''''''''''''''''''''''''''''''';''''''';;;;''''''''''''''''''''''''''''';;                                                     
                                                                 .. ::;;;''''''''''''''''''''''''''+++'';'''''';;''+'''''''''''''''''''''''''''''':                                                     
                                                                    ,:;;;;''''''''''''''''''''''''''''+''''''''''''''''''''''''''''''''''''''''';;,                                                     
                                                                    .;;;;;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                                                      
                                                                    `:;;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`                                                      
                                                                     :;;;''''''''''''''''''''''''''''''+'''''''''''''''''''''''''''''''''''''''                                                         
                                                                     :;;;''''''''''''''''''''''''''''''''''''+++''''''+''''''''''''''''''''''''                                                         
                                                                     :;;'''''';;;'''''''''''''''''''''''''+'++''+'''+'++'+''''''''''''''''+''''                                                         
                                                                     :;;''''';;;;''''''''''''''''''''''''+''++''''+++++++++++''''''''''''''''',                                                         
                                                                     :;;''''';;;;''''''''''''''''''''++''''+++'''+'+'++++++++'''''''''''''+''',                                                         
                                                                     :;;;'''';;;;''''''''''''''''''''''''''+++'''+''+++++++++'''''''''''++++'':                                                         
                                                                     :;;;'''';;;''''''''''''''''''''''''''+++'''+''''++'+++'++''''''''''+++''':                                                         
                                                                     ::;;'''';;;;''''''''''''''''''''''''''''''''''''''+++++''+'''''''''++++''.                                                         
                                                                     ,:;;''''';;''''''''''''''''''''''''''''''''''''''''''+++++''''''''+++'+''                                                          
                                                                     `:;;'''';;;''''''''''''''''''''''''''''''''''''''''''+'+++++'''''''+++'''                                                          
                                                                      :;;'''';''''''''''''''''''''''''''''''''''''''''''++++++++'''''''++'''',                                                          
                                                                      :;;'''';';'''''''++++++++++++++++++++++++++++++++#+++++++'''''''+++++''                                                           
                                                                      .:;;'''';;''''+++++'+++++++++++++++++++++++++++++++++++++'''''+''+++'''                                                           
                                                                       :;;'''';'''''++++'''+++++'++++++++++++++++++++++''++++++'''++'''+++'':                                                           
                                                                       ,;;'''''''''++++''''''+++''''++''''+'++++'+'++''''++++++''+'''++++'''                                                            
                                                                       .;;'''''''''++++'''''''++'''''''''''''+''''++'''''+++++++''''++++'+':                                                            
                                                                       .:;''''''''++++++''''''''''''''''''''''''''''''''++++++++++'++'+++''                                                             
                                                                       ,:;'''''''''+'+''''''''''''''''+'+'++'++''''''''''++++++++++'++''+'.                                                             
                                                                       ,:;'''+''''+++++++'''''''''''''''''++'''''''''''''++++++++''+++++';                                                              
                                                                       ,;;'''''''''+++++++''''''''+'''++'''''''''''''''''++++++++++'+++''                                                               
                                                                       ,;;'''''''+++++++'+++++++++++++++++++++++++'''+++++++++++++++++''`                                                               
                                                                       ,;;''''''+'++++++++++++++++++++++++++++++++''++++++++++++++++''',                                                                
                                                                       ,;'''''''''++++++++++++++++++++++++++++++++''+'+++++++++++++++''                                                                 
                                                                       :;'''''''''++++++++++++++++++++++++++++++++++++++++++++++++++''                                                                  
                                                                 `,:::,;;''''''''+++++++++++++++++++++++++++++++'+++++++++++++++++++'.                                                                  
                                                               ,:::;;;:;'''''''++++++++++++++++++++++++++++++'''''+++++++++++++++++',                                                                   
                                                             `,::;;;;;;;'''''++++++++++++++++++++++++++++++++++'++++++++++++++++++';                                                                    
                                                            .,::;;;;';;''''''++'++++++++++++++++++++++++'''+++'+++++++++++++++++++'                                                                     
                                                           .,::;;;;;;'''''''''+++++++++++++++++++++++++''''''+++++++++++++++++++'+                                                                      
                                                          ,,::;;'';;'''''''''+++++++++++++++++++++++'+++''''+++++++++++++++++++++,                                                                      
                                                        `,,,::'''';''''''''''++++++++++++++++++++++++++'''++'+''+++++++++++++++++                                                                       
                                                       .,,::::;'''+'''''''''+++++++++++++++++++++++++++'+++'+++++++++++++++++++''                                                                       
                                                     `,,,,::::;''+++++'''+++'++++++++++++++++++++++++++''+++++++++++++++++#++++':                                                                       
                                                   .,,.,::::;;;+++++++++++++++++++++++++++++++++++++++++'+++++++++++++++++#+++'',                                                                       
                                                `,,..,,,:::;:;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#'''::                                                                      
                                              `,,,..,,:::::;:;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''':;:.                                                                    
                                            .,,,,..,::::::;;;;'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''''';;;:                                                                   
                                           ,,,,..,,:::::::;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''''';;:.                                                                 
                                       ``.,,,..,,,:::::::;;;;;;++++++++++++++++++++++++++#+++++++++++++++++++++++++++++#++++'''''''';;::                                                                
                                  `..,::,.,..,,,:::::::::;;;;;;+++++++++++++++++++++++++++###+#++++++++++++++#++++++##++'++'''''''''';;;:                                                               
                             `..,,:,,::,,..,,,,:::::::::;;:;;;;+++++++++++++++++++++++++++++###+++++++++++++++#+#++##++++''''''''''''';;;:.                                                             
                          `.,::::;::;,,..,,,::::::::::::;;;;;;;'++++++++++++++++++++++++++++++##+##+##+++++#+#####+++++++''''''''''''';';;:,                                                            
                       ..,:::::;::::..,::;;;:::::::::::;;:;;;;;'+++++++++++++++++++++++++++++++++++#++#++#####++++++++++++''+'+'''''''';;;;::                                                           
                   ..,:::::::;::::,,:;;::::;;;;::::::::;;:;;;;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++''+++++'''''''';;;;::                                                          
                ..,::,::;;;;:::::,;;;::::::;:::;;:::::;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''+++++'''''''';;;;;::,                                                        
     .,,,......,,::;:::::::::;;:::;::;::::::::;;;:;::;;;:;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++'++++++#+''''''';;;;;;:::                                                       
 ,:;:::::;::::::,,:::::::::::;::::;;;;;::::::;;;:;;;:;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+''''''';;;;;;;;::.                                                     
::::::::::;;;;;;:::,::::::::::::::;;;;;;;:::;;;;;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''';;;;;;;;;:::                                                    
:::::::::::;;;;;;;;::,,:::::::::::;;;;;;;;;;;;;;;;;;;:;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+''''''';;;;;;;;;;:::,                                                  
:::::::::::;;;;;;;;;;:::,::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#++'''''';;;;;;;;;;;::::`                                                
::::::::::::;;;;;;;;;;;::::::::::::::;;;;;;;;;;;;;;;;':;;;;;:;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#+'''''';;;;;;;;;;;;:::::                                               
::::::::::::::;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;':;;;;;:;;;'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''';;;;;;;;;;;;;;:;:::`                                             
::::::::::::::::;;;;;;;;;;;:::::::::::;;;;;;;;;;;;;;;;:;:;;;:;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''';;;;;;;;;;;;;: ,;;:;`                                            
::::::::::::::::::;;;;;;;;;:::::::::::;;;;;;;;;;;;;;;;:;;;;;:;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''';;;;;;;;;;;;:   .;::;                                            
;::::::::::::::::::;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''';;;;;;;;;;;;;:   ,;;;                                            
;;:::::::::::::::;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''';;;;;;;;;;;;;;;    ,;;                                            
;;;:::::::::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;::;;;;;:;;;;;;;'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''';;;;;:;;;;;;;;;     :;                                            
;;;;::::::::;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#''';;;;;;:;;;;;;;;      ,                                            
;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''';;;;;;;;;;;;;;:,                                                  
;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++';;'';;;;;;;;;;;;;:::`                                                
;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++++++++++#';;;:;;;;;;;;;;;;;;;::;,,                                               
;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;';;;;;;;;;;;;:::::;,                                              
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++##;;;;';;;::;;;;;;;;;;:::::::::,                                            
;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++#;;;;';;;;;:::;;;;;;:::::::::::::`                                          
;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++#;;;;;';;;;:;;;:;;:;;:::::::::::::::;                                        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;'';;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++#';;;;'';::;;;;;;:;;;:::::::::::::::::,:                                      
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''':;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++;;;;;'';;;;;;;;;:::::::::::::::::::::::,:                                    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''':;;;;;;;;;;'+++++++++++++++++++++++++++++++++++#++#;;;;;'';:;;;;;;;;::::::::::::::::::::::::::,                                  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';''':;;;;;;;;;;+++++++++++++++++++++++++++++++++++++#';;;;;'';;;;;;;;;:::::::::::::::::::::::::::::.                                
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';';;;;;;:;;;;:+++++++++++++++++++++++++++++++++++#+;;;;;;'':;;;;;;;;:::::::::::::::::::::::::::::::.                              
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''::::;:;;;:;;++++++++++++++++++++++++++++++++++#;;;;;;;':;;;;;;;;;:::::::::::::::::::::::::::::::::                             
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'::;;;;::::;'+'++++++++++++++++++++++++++++++++;';;;;;;:;;;;;;;;:::::::::::::::::::::::::::::::::::`                           
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';::;;;:::::+++++++++++++++++++++++++++++++++'';;;;;;:;;;;;;;;;:;::::::::::::::::::::::::::::::::::,                          
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';::;;::::::+++++++++++++++++++++++++++++++#;';;;;;:;;;;;:;;;;::::::::::::::::::::::::::::::::::::::`                        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';:::::::::;++++++++++++++++++++++++++++++#';;;;;:;;;;;:;;;;::::::::::::::::::::::::::::::::::::::::,                       
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';:;:::::::'++++++++++++++++++++++++++++++;;;;;:;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::.                     
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';';:::::::::++++++++++++++++++++++++++++#';;;;:;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::,                    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';:::::::::+++++++++++++++++++++++++++#';;;:;;;;;;::;;;;;;::::::::::::::::::::::::::::::::::::::::::::                   
:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;':::::::::;+++++++++++++++++++++++++++;;;:;;;;;;;::;;;;;::::::::::::::::::::::::::::::::::::::::::::::                  
:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';::::::::'+++++++++++++++++++++++##+;;;;;;;;;;;::;;;;;:::::::::::::::::::::::::::::::::::::::::::::::                 
:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';::::::::+++++++++++++++++++++++##';;:;;;;;;;:;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::,                
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''':::::::;++++++++++++++##+++++++#;;:;;;;;;;:::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::`               
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''':::::::++++++++++#++#++++++++##;;:;;:;;;;;::;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::               
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';::::::#+#++++++++####+++#++++;::;;:;;;;;:;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::`              
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';'::::::++++++++##+##++++####;;::;;:;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::              
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''';::::'##+++++##++##+######;:::;:;;;;;:;;;;;;;;::::::::::::::::::::::::::::::::::;:::::::::::::::              
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';:::;++++++++#+#+#+######;:::;:;;;;;:;;;;;;;:::::::::::::::::::::::::::::::::::;:::::::::::::::,             
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''::;:+#+++++#+#+#######+::::;:;;;;;:;;;;;;;::::::::::::::::::::::::::::::::::::;:::::::::::::::             
;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';''';:::#+###++#+#+######'::::;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::;;:::::;;;:::::::::::::             
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';::;#####+##########;:::::;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::;::::::::::::::::            
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''';::++######+#+#####::::::;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::;:;::::::::::::::            
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''';;::++############+::::::;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::;;::::::::::::::            
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';;:'+############'::::::;;;;;:;;;;;;;::::::::::::::::::::::::::::::::::::;:;;:::::::;::::::,           
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';';;;:#############;::::::;;;;;;;;;;;;;::::;::::::::::::::::::::::::::::::;;:;;;::::::::::::::           
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'############:::::::;;;;;;;;;;;;;:::;;::::::::::::::::::::::::::::::;;;;;;::::::::::::::`          
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;:#+##########:::::::;;;;;;;;;;;;;:::;;;::::;;:::::::::::::::::::::::;;;;;;:;:::::;:::::::          
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;'###########:::::::;;;;;;;;;;;;;:;;;;;;:::;;:;;;::::::::::::::::::;;;;;;;;:;;::;:::::::;          
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:##########+:::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;:::::;;:::::::::::;;;;;;::::;;:;::::::::`         
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'#########;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;:::;:;::::::;;;;;:::::::::::::::::         
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:#########::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;:::::::;:;;:::::::;::::::::;         
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#########::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;;;;:::::::::::;;;::::;:;;;;::::::;`        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;########::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::;:;:;;:::::;;;;:;::::::;:        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#######+:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;:::;:::;:::;:;::;::::::::;;        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'######;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:::;:::;;:;;:::;:::::::::;;        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:#####@:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;;::::;;;:::::::::;,       
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;######:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;:;::::::::::::;::::::::;;: