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