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