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