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