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