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