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