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