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