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