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