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