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