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