..............::::::..............:::........................................................................................:::::::::::::::::::::::::::::....................................................................................:::::::::::::::::::::::::::::::::::::::::::::::::.............
...............:::::..............:::........................................................................................:::::::::::::::::::::::::::::::................................................................................:::.....:::::::::::::::::::::::::::::........::::::.............
.................................:::::........................................................................................:::::::::::::::::::.....................................................................................................:::::::.:::::::::..:::..::...........:::::............
.................................:::::........................................................................................:::::::::::.............................................................................................................::::::........:.........................::............
.................................:::::::......................................................................................:::::::.................................................................................................................::........................................:...........
................................::::::::::......:............................................................................::::::..................................................................................................................::..........................................:..........
................................:::::::::::::::::::::........................................................................::::....................................................................................................................:.............................................:........
...............................::::::::::::::::::::::::...:.................::..............................................:::.....................................................................................................................::.............................................::.......
..............................:::::::::::::::::::::::::::::::.............::...............................................:........................................................................................................................:..............................................:::::....
..........................::::::::::::::::::::::::::::::::::::..........::...............................................:...........................................................................................................................................................................::::...
.........................:::::::::::::::::::::::::::::::::::::::::::::::................................................:.............................................................................................................................................................................:::...
........................:::::::::::::::::::::::::::::::::::::::::::::::..............................................:::..................::::..............................................................................................................................................................
.......................:::::::::::::::::::::::::::::::::::::::::::::::..............................................::::.................:::::...................-+*###+:...................................................................................................................................
...................::::::::::::::::::::::::::::::::::::::::::::::::::::............................................::::...................::::.................-%@@#*#@@@=..................................................................................................................................
............:...::::::::::::::::::::::::::::::::::::::::::::::::::::::::....:::...........................................................::::................=@@@=---+@@@=.................................................................................................................................
....................::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.............................................................::................-@@@+-----#@@@.................................................................................................................................
...................::::::::::::::::::::::::::::::::::::::::::::::::::::::....................................................................................*@@#------=@@@-................................................................................................................................
...................::::::::::::::::::::::::::::::::::::::::::::::::::::::...:............................:-..................................-+*+=-..........@@@=-------%@@+................................................................................................................................
...................:::::::::::::::::::::::::::::::::::::::::::::::::::::::..............................*@@@=...............................+@@@@@@@#+:.....:@@@--------#@@*...:............................................................................................................................
..................::::::::::::::::::::::::::::::::::::::::::::::::::::::::.............................*@+:@@:..............................%@@=-=*%@@@#+:..:@@%--------#@@+.......::.......................................................................................................................
.................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::............................+@#::#@=..............................*@@#----=+#@@@*-.%@#--------#@@-................................................................................................................................
...................:::::::::::::::::::::::::::::::::::::::::::::::::::::::...........................=@%:::+@+..............................:%@@#-------+#@@#%@#--------%@%.................................................................................................................................
....................:::::::::::::::::::::::::::::::::::::::::::::::::::::::.........................:@@-:::+@*...............................:%@@%+--------+%@@%-------=@@*.................................................................................................................................
...................::::::::::::::::::::::::::::::::::::::::::::::::::::::::........................:%@=::::+@*.................................*@@@#=--------=%@=------#@@:.................................................................................................................................
:::::..............::::::::::::::::::::::::::::::::::::::::::::::::::::::.........................:%@=:-:::*@+..................................:*@@@*=--------=------+@@*....:*#*:......:+#%@%+............................................................................................................
::::::::..............:::::::::::::::::::::::::::::::::::::::::::::::::...........................#@+::-:::#@=....................................:*@@@#+------------=@@%:...-@@%@@:...-#@%*+#@@:...........................................................................................................
::::::::..............:::::::::::::::::::::::::::::::::::::::::::::::::..........................*@*:::::::%@-.......................................=#@@@#+-------=#@@@:..::*@%-+@%.-#@#=--=@@#............................................................................................................
::::::::::.............::::::::::::::::::::::::::::::::::::::::::::::...........................=@#:--:::::@@:.........................................:+#@@@%#*+=+%@@@-....:*@@--@@*@#=---+%@%:............................................................................................................
::::::::::::..........:.::::::::::::::::::::::::::::::::::::::::::::...........................-@%-::::::::@@.............................................:=*%@@@@@@@*:......=@@#-+%@*----*@@#..............................................................................................................
::::::::::::....:.........::::::::::::::::::::::::::::::::::::::::::..........................:%@=::::::::=@%..................................................-=+=-.........:*@@#------+%@@+...............................................................................................................
::::::::::::::.............:::::::::::::::::::::::::::::::::::...:::..........................#@+:-:::::-:+@*............................................:::.................::*@@#---+%@@+:................................................................................................................
:::::::::::::.............::::::::::::::::::::::::::::::::..:.....:::........................=@#:::::-::::#@=............................................::...................::=%@@%@@#+-:::..............................................................-=+******+=-.....................................
:::::::::::::..........::::::::::::::::::::::::::::::::.............:::.....................:%@-::::::::::@@:............................................::....................:::=++=-::::::::::::..................................................:-+#%@@@@@@@%%%@@@@#-..................................
:::::::::::::.........::::::::::::::::::::::::::::..........................................*@*::::::::::=@#...........................:-+**#**+=-:....::::.....................:::::::::::::::::::::............................................-=*%@@@@@%*+=-:..:..:+@@@#:................................
::::::::::::::......::::::::::::::::::::::::::::...........................................=@#:-:::::::::*@+.........................:+%%%%%%%%%%%%*::::::::...:................::::::::::::::::::::::::....................................:=+#@@@@@%#+-:.:.........:.:%@@@:...............................
:::::::::::.-**##*****++==--:::::::::::::::::::...........................................-@%-:-:::::::::%@%%@@@@@@%##*+-:.........:+%%%%%@%%%%@@%%+::::::::::::::.............:::::::::::::::::::::::::::..............................-=*%@@@@@#*=:...................=@@@+...............................
::::::::::.:@@@@@@@@@@@@@@@@@@@%%##*+===--:::::::....................................:-+*#%@=:::::::::::=@%######%%@@@@@@@%#+:...:+%@@%%%@@%%%@@%#=:::::::::::::::::::::......:::::::::::::::::::::::::::::........................-=*#@@@@@%*=-::......................=@@@+...............................
:::::::.....*@@@##@@@@%%####%%%%%@@@@@@@@@@@%%##**+==-----:::::::::::::----==++**#%@@@@@@@@+:::::::::--:*@%*****##%@@@##%@@@@@%*+#%@@%%@@%%%@@@@@%#*+:::::::::::::::::::::::::::::::::::::::::::::::::::::::..................:=+#@@@@@%*=-:.::.:.::..................:.*@@%:...............................
:::::........+@@@+:=#@@@@%%#******+****####%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*%@+:-::::::::--:%@@@@@@@@@@@#*###**#%@@@@@@@%@@@%%@@@@@@@@@@@#-::::::::::::::::::::::::::::::::::::::::::::::::::::...............-+#%@@@@%*+=::.:...:-=++++=:..:............::=@@@-................................
:.............-%@@%=..:=*%@@@@%##************************#################*****#@@%#***%@*:::::::::::::-@@%%%%%%%#****#@@@%#*#%@@@@@@@@@@@@@@@@@@@@@@@@#-::::::::::::::::::::::::::::::::::::::::::::::::::..........-=*%@@@@#*=-:.:::.:-=*#%@@@@@@@@@*:..............+@@@=.................................
:...............=%@@%-.....-+*%@@@@%%##**************************************%@%#*****#@#::::::::::::::*@%**************#@@@@%@@@%@@@@@@@@@@@@@@@@@%=*@@@+::::::::::::::::::::::::::::::::::::::::::::::::::...:-+*%@@@@#*=-:...:::=+#%@@@@@@@@@@@@@@@@:..........:.:*@@@+..................................
::................=%@@%=.......:-=*#@@@@@%%##*****************************#%@%*******#@#::-:-::::::::--@@*****************#@@@@%%%@@@@@@@@@@@@@@@@+...-%@@*::::::::::::::::::::::::::::::::::::::::::::--=+*#%@@@@%#+=-...::::-+#%@@@@@@@@@@@@@@@@@@@%=..........::-%@@%-...................................
:::::...............+@@@%+:..........:-=*#@@@@@@%##**********************%@#********%@*:-%@-::::-:::::*@#*******************%@@@@@@@@@@@@@@@@@@@+......:%@@+::::::::::::::::::::::::::::::::::::-=+*#%@@@@@@%#*+-:..::::.:=*%@@@@@@@@@@@@@@@@@@@@@@@*:::........::+@@@#:....................................
::::.................:+%@@@*-..............:-=+*#%@@@@%##**************%@%*********#@%-:*@@-:::::::::-@%*********************%@@@@@@@@@@@@@@@%=.........:@@%-:::::::::::::=*=--=++***####***#%@@@@@@%#*+==-:.:::.....:=*%@@@@@@@@@@@@@@@@@@@@@@@@@#::......:::::+%@@%=......................................
::::....................-#@@@@*-..................:-=+*%@@@@%%###****#@@*************%@%@@@:::::::::=%@****###***************%@@@@@@@@@@@@%+:............+@@*::::::::::=+*@@@@@@@@@@@@@@@@@@@@@@@@#+=-:......::.:-+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@*-.:.........-*@@@@+........................................
::::......................:=#@@@%+-.......................:=+*%%@@@%%@%****************%@@@%#**++*#%@%*****#@@@%%#***##*****%@@@@@@@@@@#=:................%@@-:::::=*%@@@@@@@==----::------=++*#%@@@@@@%*+-.:=+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+::.:......::=#@@@%+..........................................
:::::........................:+%@@@%*-...........................:-%@#****************#@@@#*#######**********#%@@@@@@@@%%@@@@@@%=+++=-....................=@@+:-*#@@@@#+-=@@%..:.............::..:-=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=:.::...:.:..-*%@@@#-............................................
:::::::.........................-+%@@@@*=:.......................:#@#****************#@@@#*************##******#%%@@@@@@@@@@@@#...........................:@@%%@@@%*-:.::-@@#.........................::-=*%@@@@@@@@@@@@@@@@@@@@@@@@@%*=-....:.......-*%@@@#+:..............................................
:::::..............................:=*%@@@#*=:..................:%@#***************#@@@%**************#@@@***#%%%@@@%@@%%%@@@#...........................:+@@@@%+-.......-@@#.:.............................:=*%@@@@@@@@@@@@@@@@%*+=:.....:::::.:-=*%@@@*=:.................................................
:::::..................................:+#@@@@@#+-.............:%@***************#@@@@#****************#@@@%%%%%@@%%@@%%#@@@#..........................-#@@@@*-::::.:....-@@@:..............................::..-+%@@@@@@@%#+=::.....:::..::-=*#@@@@#+-.....................................................
::::::.....................................-+#@@@@@%*+=:......:%@*************#@@@@%#*******************%@@@%%%@@%@@%%#=.-+-.........................=%@@@@%%%*+-:+#*:..:.#@@#.:................................:..-#@@@*-.:...:.....:-=+*#@@@@#*=:.........................................................
::::::.........................................:-+*#%@@@@@%#**@@**************###************************%@@@@@%%@@%#=:............................+%@@@%%%%%%%%%@@@#:..:.-@@@*:...................................:.:*@@@###*****##%@@@%#*+=:...................................:::........................
:::::..................................................:--=+%@@******************************************#@@@@%%%#*-...............:=+****+-.....=%@@@%%%%%%%%%@@@@+:......-%@@%=::..:..:-+*:........................:.-*@@@@*++++==--:.........................................::::........................
::::......................................................:*@@*******************************************#@@@%%*-................+%@@@@@@@@@@#=.#@@@%%%%%%%%@@@@@@=.........:=#@@@%#**##%@%+:........................:...=%@@@+.................................................:::.........................
::::.....................................................=@@%************************#*******************%@@%=:................+@@@@@%*=-=+#@@@@@@@%%%%%%@@@%%@@@=...........:.:=+*###*+=:.::...........................:.:*@@@%=.................................................::::::....................
:::....................................................-#@@#************************#@@%#***************%@@%:................:%@@@@@@@@@%+...=@@@@%%%%@@@%%@@@@@+:.:.............:.:..::..................................::-#@@@%-...............................................::::::....................
::::.................................................:#@@%**************************#%@@@@%%##******#%%@@%=..................%@@%.:=*%@@@%-   -@%%%%@@%%%@@%@@@@-:..:.......::-*#+............................................-#@@@%+:..........................................::::........................
:::.....:..........................................:*@@@#**********************###%%%%%%%@@@@@@@@@@@@@%#:...................*@@@- . ..   ..   ...+%%%%%@%%%%@@@#-::.....::::-*@@%=..:........................................:..=#@@@@*-.........................................:::::......................
.................................................:+@@@%********************##%%%%@%%%@%%%%%%%######****+...................:@@@%.               ..:*%%%%%%@@@@@-........:-*%@@@%%*-::.............................................-*@@@@%+:......................................:::::......................
...............................................:*@@@%*******************#%%%%%%%@@%%@%%%%%%#***********=...................=@@@*                   .:+%%%%%@@@@=.....:=*%@@@%%%@@%%*-::...........................................:::=#@@@@%+:........................:...::..::.::::.......................
.............................................-#@@@%******************##%%%@@%%@@%%%@%%%%##*************-...................=@@@* .                . ..:=#%%%@@@@%##%@@@@@@@@@@%%%%%%%#-:...............................................:=#@@@@%*-.........................::.:::............................
...........................................=#@@@%*******************#%%%%@@%%@@%%%%%%%#****************-...................-@@@#                       ..:=#%%@@@@@@%%%@@@%%%%%%%%@@@%%*:::...............................................:+%@@@@@*-........................................................
.........................................+%@@@%********************#%%%%@@%%@@%%%%%##******************=....................%@@@: .                     . ..:+#%%%%%@@@%%%%%%%@@@%%%%%%%%+:..:::.............................................-+%@@@@@#+:....................................................
......................................:*@@@@%**********************%%%@@%%%%%%%%%#*********************=....................=@@@+ .                       .   .:+#%%%%%%%%%@@@%%%%%%%%@%%%#-:................................................:..:+#@@@@@%*-.................................................
....................................-*@@@@#************************%%%@@%%%%%%#************************=.....................#@@@.                               .:=#%%%%@@%%%%%%%%@@@%%%%%%=:..................................::-===-:.:.........:+#@@@@@@#=:.............................................
..................................=#@@@%#**************************#%%@@@@%#***************************+.....................:%@@*                              .  ..:=*%%%%%%%%%@@%%%%%@@@%+...................................-%@@@@@@%*=-.::....:..:=*%@@@@@%+-..........................................
...............................:+%@@%#***************************#%@@@@%@@@@#***************************......................:@@@-                               . ....:-=*#%%%%%%%%%%@@%#=::......................::.:........#@@@@@@@@@@@@#+-.::...:::.-+#@@@@@@#=:......................................
.............................=#@@@%**************************#%@@@@@@#=.+@@@@%#*************************:....................:#@@@@:.                                ......:::-=++*####*+=::.:.....................:%@=::.......-@@@@@@@@@@@@@@@%+-..:.....:.:=#@@@@@@%*-...................................
..........................:+%@@%#************************#%@@@@@@%*=:....:#@@@@@#***********************=...................:%@@@@@%.                                .............:::::::.........................:::#@*:........:#@@@@@@@@@@@@@@@@%*=::........:-*%@@@@@@#+:...............................
:......................:=%@@%#**********************##%@@@@@@@*=:..........:+%@@@@%#********************+..................:%@@@@@@@#...                             .................................................+@%-.........=%@@@@@@@@@@@@@@@@@@*=:........:.-+#@@@@@@%*-............................
:::.................-+%@@@%*********************#%@@@@@@@#*=:.....+%@@@@##**+=+#@@@@@%#******************-.................*@@@@@@@@@#..                             ................................................:.-%@+..:....:::+@@@@@@@@@@@@@@@@@@@%*-:::........:-+%@@@@@@#+:........................
:::.............:=*@@@@%******************##%@@@@@@@%#+-.........=@@@@@@@@@@@@@@@@@@@@@@@%*************#%%*+-..............%@@@@@%+-*@%-                             ..:..............................................:.:+@%-........::*@@@@@@@@@@@@@@@@@@@@%*-:........:::-+#@@@@@@%+:.....................
:::..........:+#@@@%#***************##%@@@@@@@@%*+-:..............%@@@%#***####%%%@@@@@@@%***********%@@@@@@@@#=:..........%@@@@=....=@@-.                          ..:**::..:.:........................................:.-#@#-.........:+@@@@@@@@@@@@@@@@@@@@@%+:............:=*#@@@@@#=:..................
.........:=*%@@@%#*********###%%@@@@@@@@%#*+=:................:=#@@@@@@@%#************###***********%@@*..:=#@@@@%*-.......+@@@*-::-+#@@+..                        ...:#@*:..-%#:.......................................::::%@@*:::.......:+%@@@@@@@@@@@@@@@@@@@@@*-...:..........:=*%@@@@*:................
.......-%@@@@@@%%%%%%%@@@@@@@@@@%#*+=-:...................:=*%@@@@%*-+#@@@@@%##********************#@@@:    ..-+%@@@@*-.....+@@@@@@@@#@@%..                        ..:.+@%:.::#@@-.......................................:=%@#=%@*:.......:.:=#@@@@@@@@@@@@@@@@@@@@@#=................-#@@@@+...............
.......-%@@@@%*++++======--:::........................:=*%@@@@@#=:......*@@@@@@@@%%###**************@@@*        .:+%@@@%+:....-++++=:.=@@%+:                       ..:.-@@=..:-@@%:....................................:+%@%-...=%@*-........:::+%@@@@@@@@@@@@@@@@@@@@%+:...............-#@@@#:.............
.........=*%@@@%*=-.............................:-=*#@@@@@@%+-..........%@@::-+*%@@@@@@@@@@@@@@@%%%%@@@@#-         .:+%@@@*:...........:=#@@%*=:.                 ...:.:@@%.::.*@@#::.............................::.-*@@#-.......=#@#=:.::.....:.-+%@@@@@@@@@@@@@@@@@@@@*-...............=%@@%:............
............-+#@@@@@%*+=-:.............:--=+*#%@@@@@@@%#+-:.............+@@*....  .:-==+*##%@@@@@@@@%%%@@@#-.        ..=%@@@*:............:=*%@@@#+-. ..          ...:.:@@@::.::@@@=:...........................:.:+%@@%-...........-#@@*-.::........-+%@@@@@@@@@@@@@@@@@@@+:.............:-%@@#............
................:=+#%@@@@@@@@%%%%%%%@@@@@@@@@@@@%#*=-:..................:@@@@*-.    .   .=#@@@@@%%#***#%@@@@*           .=%@@@+...............-+#@@@@%*=:       ........%@@=:..:*@@@===-:......................:+#@@@@@@@%*+:.........:+@@%+-::.......:.-+#@@@@@@@@@@@@@@@@@%-.............:-@@@-...........
......................:-=+**#%%@@@@@@@%%#*++=-:.........................+@@#*%@%+-.  . :%@@@@@%##%%@@@@@@@@%*.          . .=%@@%:........:+*+=:...-+#%@@@%*=.  ..::.....%@@#+#%@@@@@@@@@@@%*+-:............:=*%@@@%*@@@%#@@@@%+:.......::+%@@%+-.........:.:=+#@@@@@@@@@@@@@@%::...........::@@@+...........
.......................................:................................+@@...#@@@@#+=:-@@@@@@@@@@@@%#*+-:.                ..#@@=........-@@@@@%#+=-:::=*%@@@#-......:::#@@@@@@@@@@@@%%%##%@@@@*=::::.:-+#%@@@@#+:  -@@@@*==#@@@=::::::::::-*%@@#+::::..........:=+#%@@@@@@@@%::..........:.+@@@=...........
.......................................:................................+@@... :-+*#%@@@=-=+++==-:..                       . %@@=.........:#@@@@@@@@@@@@@%%@@@@##%%@@@@@@@@@@%%%%@@@@%%-   .-+%@@@*+*%@@@@@#+-        =%@@@%=-%@@*:::::::.....-*@@@#+-..:::.....::::::-=+*##+:.:........:..=@@@%............
.......................................::...............................=@@-. .   .  .....                                 .:@@@:...........-%@@%%%@@@@@@@@@@@@@@@%%@@@@@@@@%%%%%%@@@%+        :+%@@@@*+-.              :+%@@%+%@@=..............=#@@@%*+-:...::..........:...........::.:*@@@%:............
.......................................::................................%@@*=..                                           .*@@@*.............*@@%%%%%%%%%%%%%%%%%%@@@@%@@@@%%%%%%@@@#.           :*@@#-        .:==-:     -%@@@@@%.................-*%@@@@#*=-:.....................:::+%@@@*:.............
.......................................:::...............................:*@@@@#+-...                                      .@@@@@%=............=@@%%%%%%%%%%%%%%@@@@@%%%@@@@%%%%%%@@@+              .+@@#:     +@@@@@@@%+:   =@@@@@-...................:+#%@@@@@%#*+=-::..:.:...:..:=+#@@@@#-...............
........................................::.................................:=*@@@@@%+-.                                    -@@@:+@@%=...........-@@@%%%%%%%%%%%@@@@%%%%%%@@@%%%%%%@@@-                .+@@#:  %@@*=-=+*%@@%=  :%@@@=...................:::::=+#@@@@@@@@@@%%######%@@@@@@%+:.................
........................................:::....................................-+%@@@@@#+-:.      .                        -@@@* .*@@%+:.........-@@%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%*                   .+@@*=@@*.......:+@@%%#=%@@+...................::::.....:-+*#%@@@@@@@@@@@@@%*+-.....................
.........................................:::....................................:*@@#*#%@@@@###*=..                       .*@@@@%- .+%@@%*-.......#@@%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%+.                     :#@@@@%.........-%@@@@*@@#::.................::::.............:::----::...........................
..........................................:::...................................%@@=.   .*@@@@%@@%:                   . .=%@@*+@@@#.  -*@@@@#**+++#@@@%%%%@@@@%%%@@%%%%%%%%%%%%%%#-            :+#%#*=.     =@@@@*.........:#@@@@@@@:::................:....................................................
..........................................::::.................................-@@%     ..*@@@%%@@%:.           .  . .-*%@#-+#%@@@@@+    -#@@@@@@@@@@@@@@@@@%@@@%%%%%%%%%%%%%%%*=.           :%@@@@@@@@+     :%@@@+..........%@@@@@@=:.................:....................................................
...........:...............................::::................................=@@% .   . .*@@@##@@@:      .   .:-+*%@@@%-%@*#@@%-*@@%=    =@@@@@@@%%%%%%@@%@@@%%%%%%%%%%%%%#=.             =@@@#+==*@@@*     .%@@@=.........-@@%*@@@*................:.....................................................
...........:................................:::................................:@@@.       .%@@@=%@@%:.:-==+*#%@@@@@@%@@@=-%@@@*:.:-#@@%-  *@@%%%%%%%%%%%%@@@@%%%%%%%%%%%%%#.              +@@#:.....-@@@+     .@@@@:.........#@@::#@@#:.............::.....................................................
.....:.......................................:::................................%@@=.      .:@@@@@@@@@@@@@@%##%%%%%%%%%%@@%@@*::.....-#@@#:%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-              :@@#........+@@@-     +@@@+.........-@@+..+@@%:..........::::.....................................................
......:....::.................................:::...............................-@@%.      . #@@@@@%%%==--:::-%%%%%%%%%%%@@%-.:........-#@@@@@@@@%%%%%%%%%%%%@@%%%%%%%%#**%*:             +@@:.........@@@%     =@@@+..........#@#...+@@%:........:::::.....................................................
...........:::::::.............................:::...............................=@@%-     . *@@@@%#*#=:::::-:+%%%%%%%%%%@@@-...........:=%@@@@@@@@@@%%%%%%%%%%%%%%%%%+.  -%%+           .*@%..........*@@@:    =@@@-..........-@@....+@@*.......::::::.....................................................
..........::::::::::::..........................:::...............................+@@@#=.....%@@#@@#***::::-:--#%%%%%@@@@%*-:...........:::=%@@@=-*@@@@@%%%%%%%%%%%%%*     :-.            *@*..........+@@@*    *@@@:..........:@@:....%@@:.....:::::::.....................................................
.........:::::::::::::::.........................:::.............................:@@@@@@@%##@@@==%@%##%+===++**%@@@@@%*=:..................::+@@*:::=#@@@@%%%%%%%%%%%:                ..  *@*..........:@@@@=.:*@@@#............@@:....+@@=...::::::::::....................................................
.......::::::::::::::::::........................::::............................=@@%:=*%@@%%@@#=+@@@@@@@@@@@@@@#*+=:....:...................::+%*....:+%@@@%%%%%%%%=                     *@*...........-%@@@@@@@@*............:@%.....#@@-..::::::::::::...................................................
.......::::::::::::::::::.........................::::...........................+@@@...   ..*@@#-=+**@@@%*+==::..:...........................::.:...:..:=%@@@%%%%%*.                     *@*.............=*#%%#+:.....................%@@::::::::::::::::....:.............................................
.......:::::::::::::::::::.........................::::..........................:%@@*       :@@@-:::.*@@@-................................................=%@@%%#=                       +@#.........................................=@@#::::::::::::::::::::::............................................
:.......:::::::::::::::::..........................::::...........................-@@@:.      %@@=    .%@@#.::............................................::.=%@@=               .        +@%.........................................%@@=::::::::::::::::::::::::..........................................
:::...:..:::::::::::::::............................::::........................:::=@@%-..  ..%@@=     +@@@-................................................::.+@@#:                      +@@........................................#@@=:::::::::::::::::::::::::::........................................
:::::.....:::::::::::...............................::::....................:::::::+%@@@@*=:.-@@@:     .@@@*:...................................................:#@@+                     %@@:.....................................:#@%=::::::::::::::::::::::::::::::::....................................
::::::...:::::::::.............:::..................::::::::::::::::::::::::::::::+@@@=+%@@@@@@@+     .:#@@@:...................................................:.+@@#.       .     .    #@@@+....................................=%@#-::::::::::::::::::::::::::::::::::...................................
:::::...::::::::::.............::.............::::::::::::::::::::::::::::::::::::=@@@+. -+###+.    .+%%%@@@+......................................................=%@%:               .*@@@@%..................................=%@#=::::::::::::::::::::::::::::::::::::...................................
::::::..::::::::::::.::..::::::::.........:::::::::::::::::::::::::::::::::::::::::=#@@@+.          =%%%%@@@%......................................................::#@@=          .-+%@@@@:::................................=%@#=::::::::::::::::::::::::::::::::::::::::.::.......:::....................
:::::::..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=%@@@*-        .*%%%%@@@=.......................................................:*@@*       *@@@@@%@@#.................................=%@@+:::::::::::::::::::::::::::::::::::::::::::::::::::........................
:::.::::..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.......-#@@@%+.       .:-:#@@%::.....................................................:.=@@* :--=*@@@***:*@@#:.............................-%@##@@+:::::::::::::::::::::::::::::::::::::::::::::::...........................
::...:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...........:+%@@@*-         :@@@=.........................................................-%@#@@%*+#@@#+*: *@@%=:.........................-%@#:  +@@*::::::::::::::::::::::::::::::::::::::::::::.............................
..:...:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...............+@@@@%+:       *@@%:......................................................:..=@@@@*:::#@@* *%++@@%*=......................=%@%-     -@@#:::::::::::::::::::::::::::::::::::::::::::.............................
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.................*@@@%@@@@#+=-:.:%@@+......................................................-+%@%%@@#:-::%@@*-+- +@@%#*=..................=%@%=        =@@*::::::::::::::::::::::::::::::::::::::::::.............................
..:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..................:@@@* .=#@@@@@@@@@@@@-.:...............................................:-+%@@#**#@@#::::-#@@* #@=+@@@@@#=..............=%@@+           #@@=::::::::::::::::::::::::::::::::::::::::::::::........................
.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....................*@@#     .-+*@@@%%%@@@+:..........................................:.:-+%@@%#*****@@#::::::#@@#-+%@@@@@@@%*=:.........=%@@@:            :@@%-::::::::::::::::::::::::::::::::::::::::::::::.......................
.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.....................=@@%.         :@@****%@@#=::::................................:..:-+#@@@%#********@@%::::::-@@@@@@@%####%@@#*=:.....=%@@@@@-             #@@*:::::::::::::::::::::::::::::::::::::::..............................
.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....................-@@@:           -@%*****%@@%*=-.......:.....................:.:-+#@@@@%#***********@@%:::::::#@@@@%##****#%@@%#*+=-+%@@@%@@@-             .@@@=:::::::::::::::::::::::::::::::::::::::..:..........................
...::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::....................-@@@=         .   =@%*******#%@@@#+=-:..................:.:-=*#@@@@@%#**************%@@-::::::+@@%@@###****##%@@%##@@@@@%%@@@-              +@@%::::::::::::::::::::::::::::::::::::::..............................
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::................-@@@*               =@%*********#%@@@@@%#*+=-:::....::-=+*#@@@@@%%#******************#@@+::::::=@@#*%@%#******##@@@@@#@@%%#@@@-               %@@*::::::::::::::::::::::::::::::::::::...............................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...::::.............-@@@#                 -@%*************##%%@@@@@@@@@@@@@@@@@@%%##***********************@@%::::::-@@%**#@%#******##%@@@@@@#=:%@@-               .@@@+:::::::::::::::::::::::::::::::::::...............................
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..................=@@@%           .       :%@************+*******###########******************************%@@-::::::%@@****%@%#*****#+-#@@@@#::%@@=                =@@@+::::::::::::::::::::::::::::::::::...............................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..................=@@@%.                    .#@#************************************************************@@*::::::+@@#****#@%##*#*-:::-+**+::%@@+                 =@@@*::::::::::::::::::::::::::::::::................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...............=@@@%.             .-===.    +@%#**********************************************************%@@-:::::-@@%****+#@@%#+::-:::----::%@@*                  -@@@%-::::::::::::::::::::::::::....................................
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.............+@@@%.            -#%%%%%%+    .*@%**********************************************************@@+::::::%@@***#%@@%@%=::-:-:----::%@@-                  .-%@@@*-:::::::::::::::::::::::.....................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.........+@@@@:           :#%%######%-     :*@%#*******************************************************%@%::::::+@@%%@@@%%*=%@@#+=--==+*%@@%=                    .:#@@@@*-:::::::::::::::::::.......................................
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.........+@@@@:           =%%%##**#*#%+       .+@%#*****************************************************#@@--+*%%%@@@@@@%%%#..+@@@@@@@@@@#+:                      . .-*@@@@#=::::::::::::::..........................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.....+@@@@:           -%%##*****#%%-          =#@%#***************************************************@@@@@%%@@@@@@@@%%%%.   :=++++-:                               .=%@@@%*-:::....::::..........................................
.....:::::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..*@@@@-           .%%##*****##%#.            .=#@%#***********************************************#@@@@@%%%@%@@@@@%%%%:                                             .+%@@@%+:....:::...........................................
.......:.....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.*@@@@=            =%%#*****##%%:                 -*%@%%#***********************************##%%@@@@@@@%@@%@@+#@@@%%%%%-                                                :+%@@@#-...::..........................::::::::::::.....
.............:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#@@@@-             *%##***##%%#:                     .-+*%@@%%%########################%%@@@@@%%%%%%%@@@+*%%##%@@%%%%%%+         ..  .                                     -*@@@#-..::......................::::::::::::::::::::
...........:::::::::::::::::::::::::::::::...::::::::::::::::::::::::::::::#@@@@-              =%%####%%%*.                         . ..:-==++*@@@@############@@@@%%%%%%%%%%%%%%%@@@@@@@@@%%%%%%%%#.       ...                                          .+@@@#-.:....................::::::::::::::::::::::
...........:::::::::::::::::::::.....:........::::::::::::::::::::::::::::#@@@@:                *%%%%%%*:                                .    -@@@+.........::#@@@%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%*.      ..                                             .+@@@*...................::::::::::::::::::::::::
:........::::::::::::::::::::::.................::::::::::::::::::::::::-#@@@@:                  .---:                .:--::.         . .     -@@@=........::#@@@%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%+                                                       :#@@%-...............::::::::::::::::::::::::::
.::::::::::::::::::::::::::::::.:::............:..:::::::::::::::::::::-#@@@@-                                      .-----::--.               -@@@-........:%@@@%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%+                                                        +@@@=..............::::::::::::::::::::::::::
.....:::::::::::::::::::::::::::...................:::::::::::::::::::-%@@@@:                                      :----:::::::        .      -@@@+.......:%@@@%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%+                                                        -%@@+.............:::::::::::::::::::::::::=
.......::::::::::::::::::::::..:........................:::::::......:%@@@%.                                      :-------::::.               -@@@*.:...:.#@@@%%%%%%%%%%%%%%@@%%%@%@%%%%%%%%%%%%%%%%%%%*    :*#*.                                                .#@@*............:::::::::::::::::::::::=%@
.......::::::::::::::::::::::...:............................:......:%@@@#.          -+*#*+:                     :----:-----:-                .@@@%::...:=@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=    =%%%-                                                  *@@*...........:::::::::::::::::::::=%@@@
.........::::::::::::::::::::.....::.........................:.....:%@@@#.         -#%%%%%%%#:         .         -----:--:::-:                 %@@@::...:@@@%%%%%%%%%%%%%%%@@@@%@@%%%%%%%%%%%%%%%%%%%%%:    -%%#.                                                   *@@+..........:::::::::::::::::::+%@@@#-
...........:::::::::::::::::.:*@%-...:............................:%@@@#          -%%%%%%%%%%%-   .             .-----------:                  +@@@=::..#@@@%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%#.     .:                                                      %@@=.........:::::::::::::::-+#@@@@*-..
.............:::::::::::::..=@@@@#...............................:%@@@*          :#%%%%%%%%%%%#.  .              ----------:                   -@@@*.::-@@@%%%%%%%%%%@@@@@@##@@@%%%%%%%%%%%%%%%%%%%%%%#.                                                             =@@%..........::::::::::-+*%@@@@#+:....
..............:....:.......=@@@@@#..............................:%@@@+           +%%%%%%%%%%%%%+  .      .       .-------:.                     @@@%::.*@@@%%%%%%%@@@@@@*=::+@@@%%%%%%%%%%%%%%%%%%%%%%%*=+#+.                                  ..                     @@@+---::----==+++*##%@@@@@%#=:.......
.............::...........=@@%*@@%.............................-@@@@=            *%%%%%%%%%%%%%#   . .              ...                         *@@@-.:@@@@%%%@@@@@@%+-:.:..=@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%+    :=.                                                  +@@@@@@@@@@@@@@@@@@@@%#*+=:::.........
.............:...........-@@%**@@@-...........................-@@@@-             #%%%%%%%%%%%%%#.                                               :@@@#.:@@@@@@@@@@#+-:.......=@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%+   .#%#:                                                 .@@@=---==------::::..................
........................:@@%***%@@+..........................-@@@@:              *%%%%%%%%%%%%%#                                                 *@@@-:-%@@@@#+-:..........:=@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%-   .%%%*.                                                 *@@+.................................
.......................:%@%****%@@%.........................-@@@%:               +%%%%%%%%%%%%%+                                                 :@@@*::::--:.:.............=@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%:   -%%%%=                                                 -@@#.................................