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