MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###%###%#%%%%%%####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########%%%%######@#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@M@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@##########@@#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@#@#@####@######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@####@@@@@@@@@@@####@########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%%%###@###@@@@@@##############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###%%%#######@@@@@@@#@@####@##@%###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@##%%%%%%%#####@@@@@@#@@@@###@@@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@#%%%%%%+++%%#####@#######@#@@#@@@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMM@MMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@#%%%%++++++++%%###############%#@@@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMM@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%++++++%%%++%%#######%%%%########@@@#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMM@MMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%%+++++%%%%%%%%#####%%%%++%#####@###@@##%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMM@@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###+++%+%%%#####%%%%%%%+++::+%#%%####@@@@@@%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####+++++%%%%%%%%%%%+++++::::++++++%###@#@@@#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######%+%%%%%%%%%+++++++::,,,,:::::+++#####@#@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMM@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@#%%%%%%%%%%%++:::,,,,,,,,,,,:::+++%#####@@@####@#@@@@@@@@#@@#@@@#@@@@@@##@##@@##@@#@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMM@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####@#%%%%%%%%++::::,,,,,,,,,,,,,::::+++%@##@@@@#############@###########################@@@@@@@@#@@###@@@#######@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMM@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%###@##%###%%+:,,,,,,,,,,,,,,,,,,::::::+%###@@@@@##############################################@##########################@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMM@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%######%%##%+:,,,,,,,,,..,,,,,,,,::::::++####@@@@#####################################################################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###########%%%::,,,,,,......,,,,,,,,::::::+%##@@#@@#######################################################################################@@@##@#@@@##@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%#%#%#####%++::,,,,,,.,,..,,,,,,,,,::::::++##########%################################################################################################@@@#@@@@@@@@@@@@@@@@@@
MMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%#%#%####%:::::,,,,,,,,,,,,,,,,,,,,::::::++%%########%####################################################################################################@##@#@@@@@@@@@@@@@
MMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##%%%##%%#%+::::::,,,,,,,,,,,,,,,,,,,::::::++%%%#######%#########################################################################################################@@@@@@@@@@@@@
MMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###%%%%%%++%+::::,:,,,,,,,,,,,,,,,,,,,,:::::++%%%#%%####%#########################################################################################################@@@@@@@@@@@@@
MMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########%%%%%++++::::,,,,,,,,,,,,,,,,,,,,,,:::::++%%%#%#####%################################################################################################################@@@@@@
MM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########%+%%%++++:::,,,,,,,,,,,,,,,,,,,,,,,::::::+%%%############################################################################################################################@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############%%%%+++++::::,,,,,,,,,,,,,,,,,,,,,,,:::::++%%%%####@@######################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################%#%+++::::,,,,,,,,,,,,,,,,,,,,,,,,::::::+%%%%##@@@@######################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######################%%%+++:::,,,,,,,,,,,,,,,,,,,,,,,,:::++++%%%%%##@@@######################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@#########################%#%%%+++:::,,,,,,,,,,,,,,,,,,,,,,,:::+%%%%%%%%%%#@@@######################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############################%%+%++++::::,:,,,,,,,,,,,,,,,,,,::++%###@@@@%%%%#@@%:%####################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@############################%+++++++::::,,,,,,,,,,,,,,,,,,:+++++%###@@@@@#%%##%%#%####################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################################%++%+++++:::,,,,,,,,,,,,,,,,:%+,,,,%####%%%##@@#%%%##%%###################################################################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@######################################%+%+++++%%++++++++%%+,,,,,:#@###@@@@@@@@@###@#++%##+:%######%%#%####%#%%%##%##%#%%%%#####%##%############################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################################################%%%+%#@@@@#%:,,:+%#@%,,,:+#@@##@@@@@@@@@@@##%+++%++:+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%#######%#################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@###############################################%##%%%%@@@@@@@@@@@@@###%#%.#@#######@#@@###@@@#++%++:+,+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################################################%+::##%@@###@@@@@@###%%+%##+#####%%#%####%###@@@#++++++,+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################################%++:+%#@##@@@@#%++++%%%%%#:,,:##%%%+,+%#+++%%+%#@%%+%%+,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%###%##%########################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########################################################%##+:+####@@#%%%%%%%%%%%%#:,,:%%+:+::::+:+++++:%@@#++%+:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###############################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@#######################################################++++++%%%#@#%%%#####%%%%%#:,,,%%+:::::,:::+++::%#@@%+#:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#############################
@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@##########################################################::+::++##@@##%#+###%,++::#:,,,+%:::::::::++:::++#%#%+%:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%#####################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@############################################################+:::::++#@@%%%+::%%::::::%:,,:+#+:::::::::::::%+@%%%%%:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########
@@@@@@@@@@@@@@@@@@@@@@@#@###############################################################+,:::+++%@@%%++:::::::,,:+:,,:+%%:,,,,,,:,,::,:##%%%##+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######
@@@@@@@@@@@@@@@@@@@@@###############################################################%###%,:::++++%#+++::::,:::::%+:,,:+++++:::::++++++#@%%%%##+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%
@@@@@@@@@@@@@@@@@@#############################################################%##%%%%%%%::,:++++:#::++::,:::,:++:,,,::+::+%%%%%%%%###%%+%#%#%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@#############################################################%%#%%%%%%%%%%+:,::+++:++:::::::::+%+::,,,::++::,,,,,,,:::::+%##%%+:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@############################################################%%%%%%%%%%%%%%%%%:,,:+++::#:++++++%%+:,::,,,,:+++::,,,,,,::::+++##%%::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@#######################################################%%%%%%%%%%%%%%%%%%%%%+:,:++++:+#%%%%%+:,,,:::,,,,:++:+:,,,,,,,::++++#%%#::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@##########################################################%%%%%%%%%%%%%%%%%%%%%%+,::+++::::::,,,,,,:::,,,,,::+:+:::,,,,::+++++#%##::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@###############################################%%%%######%#%%%%%%%%%%%%%%%%%%%%%%%+:::++++:::::,,,,,,:::,,,,,::+++:,:,,,,::++%+%#%#@++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@###############################################%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%:,:%+%++::::,,,,,:::::,,,::+%+%+,,,,,,::+%%+%#%##+%%%%%%%%%%%%%%%%%%%%%+++++%%%++%%%%%%%%%+++++++%%%++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@############################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+,,++%+++:::,,,,:::+++:::+%####+,,,,,,::+%++%#%%%%%%%%%+%%%+%%+++++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
##########################################%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+,,:%%%+++::,,,::,:%##%%%%#@#%+:,,,,,,::+%%%%#%%%%%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%%+%%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
########################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+:,,++%+++:::,,::,,+%%#@@@#+:::::::,,,::+%%%##%%%%%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%+%%+%%%%%%%%++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
######################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+,,:%+++++::,::,,,,:::++::,::::::::,,::+%%%%%%%%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%++%%+++++%%%%++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+::++%+++:::::,,,:::,,,,,,::::::::::::+%%%%%#%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++:::::::,:::,,,,,,,:::::::::::++%%%%###%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
##############################%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++:::::::::::,,,:,,,:::::::+::+++%%%#@@@@@#%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%
#############################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++:::::::::,,,,,,::++++++++::+++%%%#@@@@@@#%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%+%%%%%%+++++++%%%%%%%%%%
###########################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++:::::::::::++++%%#%%#%%++:::++%%%@@@@@@#%%%%%%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%+%%%%%%
###########################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%+%%%%%%%++++:::::++++%##@@@@#%%++++++:::+++%%@@@@@#%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%++%+%%
##########################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++%%%+++::::++%%%%+%%%%%%+++%%++:::++++%#@@@@@%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
##########################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++%%++++::::+++++:+++++:++%%::::::++++%#@@@@@#%%%%%%%%%%%%%%%%%%%%%%++++++++:::+::::+++:::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
##########################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++%%%+%+:::::::++++::+++%%+:::::::++++%#@@@@#%#%##%%%%%%%%%%%%%%%%%%%%%%%++++:::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###############%##%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++%##%%+++:::::::+%%%%%%%+:::::::::++++%@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++++
#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++%%####%%%++:::::::+++:,,,:,,::::::++++%#@@@@###%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++
##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++%#######%%%+:::::::::,,,,,,,,,,,:::++%%%@@@@@##%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++
#########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++%%#########%+++:::::,,,,,,,,,,,,,,::+%%%%#@@@@###%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++
###%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++%##%########@%+++::::,,,,,,,,,,,,:,:::+%###@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%++++++++++++++++++++++++++++++++++++%#%%%%%%%%#####@%+%++:::,,,,,,,,,,:::::++@##@@@@@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+:::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%+++++++++++++++++++++++++++++++++++%%###%%%%%%%########%%%++::,,,,,,:::::::++%#@#@@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+:::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++%###################%%#%%%%::::::::::::::++%#@@@@@@@@@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::+++++++:+++++++++++++++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++%%%####%%%%##############+:%####%+:::::::+++++%#@@@@@@@@@@#%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++%+++++++++++++++++++++++++++++++++%#####%%%%#####%####%#######+,,######%++++++%%%%#@@@@@#@@####%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++%%++++++++++++++++++++++++++++++++++++++%####%%%%%%%#######%#%%#######%,,:###############@@@@####@##+::%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+::::::::::::::::::::::::::::::::::::::::+++++::::::+++++++++++++++++++
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++++++%%###%%%%%%%%%#####%####%########%,,,:#######################%:,,:%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+:::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++++%####%%%%%%%%############%##%####%%,...,+%###################%,.,,+%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#%:::::::::::::::::::::::::::::::::::::++++%%%++++++++++++++++%%#####%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++%###%%%%%%%%%%%#########%#%###%####%%,......:%##########@@@@@#%...,,+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%+::::::::::::::::::::::::::::::::::::++++%%%++++%%%+++++++++%#######%%
%%%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++++++++++++++++++++%####%%%%%%%%%%%%%###%#####%%#%%%####%%:.......,+#######@@@@@##%.....,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###+:::::::::::::::::::::::::::::::::+++++++++%+:++%%%%+++++%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++++++%#######%%%%%%%#####%%%##%%##%#%%%####%%+.........:%#####@@##%%+......,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%:::::::::::::::::::+++++++::::++++++::+:++++:++%%%%%%+++%%%%%+++%%%%%
%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++++++++++++++++++++++++++%#######%%%%%%%%%#%%##%%%%%%%%%%##%%###%%%%,.........,+++++++++++.......,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%::::::::::::::::++::+++%++:::++++++::::::+++:++%%%#%%+++%%%%%::+%%%%%
%%%%%%%%%%%%%%%+%+++++++++++++++++++++++++++++++++++++++++++++%#########%%#%%%%%%%%##%%%#%%#%%#%%%%%%%%%%%:...........::+++++++........,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%+:::::+++::::+++++:::++%%+:::+%%++::,,:::+++:++++%##%+::+%%%+::+%%%%%
%%%%%%%%%%%%%%%%%+%%+++++++++++++++++++++++++++++++++++++++++##########%#%%%%%%%%%#%%%%##%%%%%%%%%%%%%%%%%+.............,++::,,........:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%+++:++%+:::++++++:,::++++:,:+#%+::,,,,::+++:+:++%%#%+::+%%++::+%%%%%
%%%%%%%%%%%%%%%%%%%%%%+%+++++++++++++++++++++++++++%%%%%%%%%#######%%###%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%+..............,,:+##+.......:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%###%%%#%%++%%++++%%++++:,,:++%+:::+#%+::,,,,::+++:::++%%#%+::+%%++::+%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++%%%%############%%%###%%%%%%%%%#%###%##%%%%%%%%%%%%%%%%%%%,............+%%+%##%%,.....:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%####%###%+%%%%++%%%++++:,,:++%%+::+#%+:,,,,:::+++::::++%%%+::+%%%+::++%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++%%###@@@########%%%##%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%:...........:##%##%%%##:....+%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%#######%%%%%%%%###%++++:,,:+%#%+::+#%+:,,,,::++++::::++%#%+::+%%%+::++%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++%####@@@#######%%%###%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+..........,##%###%#####:...+%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%#####%#%%%##%%%###%++++:,,:++#%+:+%%%+:,.,::+++++::::+%##%+::+%%%+::+++%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+++++++++++++++++++%%###@@@#######%%###%%%%%%%##%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%..........%#%%%%+######+:..+%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%######%#%%%##%%%###%++++:,,:++%%+:+%%%::,.,:++++++::::+%##%:::+%%%+:::++%%%
%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%+++++++++++%%%%+++%%###@@@#######%###%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,........,+%##%%%%%###%.,,,%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%#########%###%%%###%+:++:,,,++%%+:+%%%::,.,:++++++::::+%##%:::+%%%+:::++++%
%%%%%%%%####%%%%%%+%%%%%%%###%%%%%%%%%%%%%%%#%%%%%####@@@######%%###%%%%%%%%###%#%%%%%%%%%%%%%%%%%%%%%%%%%%%:........+..+####%%###,...:%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%########%%###%%%###%+:++:,,,:+%%+:+%%%::..,:++++++::::+%##%:::++%++:,:++++%
##%%%%%%#@@#%%%%%%%%%%%%##############%%%%%###########@@@##########%%%%%%%%#%##%%%%%%%#%%%%%%%%%%%%%%%%%%%%%:.......,,...%#%%+#@#+....,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%########%%%###%%%###%+:++:,,,:+%%+:+%%%::..,:+:::++::::+%##%:::++%++:,:++++%
###%%%+%%#@####%%%%%%%%%#@##%%#@@@@@##%%%%#####@@######@##########%%%%%%%######%%%%%%#%%%%%%%%%%%%%%%%%%%%%%+.............##++###.... :%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%##%%#####%%%%##%%%###%+:++:,,,:+%%+:+%%%::..,:+:::++:,,:+%##%:,:++%++:,:++++%
@##%%%+%%#@@@@@#%%%%%%%%###%%%#@@@@@##%%%%##%%#@@######@####%#####%%%%%%%%#####%%#%%#%%%%%%%%%%%%%%%%%%%%%%%%.............,###%#%.... :%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%####@#%%%%%%%%%###%+:++:..,,:%%+:+%%%::..,:+::::+,,,:++##%:,:++%++:,:++++%
@###%%%+%##@@@@#%%%%#%%%###%%%#@@@@@##%%%%%#%%#@@@#####@###########%%%%%%##%###%%#%%#%%%%%%%%#%%%%%%%%%%%%%%%,.............+##%#+...  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%###@#%%%%%%%%%%###%+::+:..,,:%%+:+%%%::...,:::::+,,,:++##%:,,++%++:,:++++%
@###%%%+%##@@@@##%%%#%%%%##%%%#@@@@@##%%%%%%%%#@@@#####@############%%%%%%%%####%#%%%%%%%%%%%%%%%%%%%%%%%%%%%:.............:%#%#:... .+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%####@#%%%%%%%%%%###%:::+:...,:%%+:+%%%+:...,:::::+,,,:++##%:,,+%%++:,:+++++
@###%%%+%%#@@@@##%%%#%%%%##%%%#@@@@@@#%%%+%%%%#@@@##################%%%%%%%%%%%###%%%%%%%%%%%%%%#%%%%%%%%%%%%:............,#++%#:.. ..+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%###@#%%#%%%#%%%%###%:::::...,:%%+::%%%+,....,::,::,,,:++##%:,,:+%++:,:+++++
@###%%++%%#@@@@###%%#%%%%###%%#@@@@@@#%%+++%%%##@@###########%#######%%%%%%%#%%##%%%#%%%%%%%%%%%%%%%%%%%%%%%%+............,#+:%@+.  ..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%######%##%%%#%%%%###%:::+:...,:%%+::%%%+,....,::,::,,,:++##%:::+++++:::+++++
@###%%+++%##@@@@##%%#%%%%###%%#@@@@@@#%%+++%%%%#@############%#######%%%%%##%%%##%%%#%%%%%%%%%%%%%%%%%%%%%%%%%,...........+#%%%#%. ..,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%########%%%%#%%%%###%:::::...,:%%+::+%%+:....,::::::,::++%%%+::++++++:++++++
@###%%++++%#@@@@##%%#%%%%###%%#@@@@@@#%+++++%%%#@@###########%#######%%%%%#%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:..........,#%####%. ..,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%##%%%###%%%%#%%%%###%:::::...,:+%+::+%%+:,,,,:+:::+:::+++++++:++++++++++++++
@###%%++++%#@@@###%%%%%%%###%%#@@@@@@#%+++++%%%#@@###########%%######%%%%##%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:..........%#+%#%##....:%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%##%%%%##%%%%%%%%%%##%++:++:,,,:+++++++++++::::+++++++++++++++++++++++++++++++
@###%%++++%#@@@##%%%%#%%%%##%%%@@@@@@#%+++++%%%#@@############%#######%%%##%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+.........:%##++%##, ..:%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%##%%##%%%%%##%%%%%%%+%%%%%++++++:::+++++++++++++++++++++++++++++++++++++++++++++++
@###%%++++%#@@@##%%%%#%%%###%+%#@@@@@#%%++++%%%################%######%%###%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+.........%%##++#@#+...+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%##%%%%%#@%%#%%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@##%%%++++%#@@###%%%%#%%%###%+%#@@@@@#%%++++%%%################%%#####%%%##%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%........:%%++%%#@##...+%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%%%%%##%##%%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@##%%++++%##@###%%%%%%%%###%+%#@@@@@#%++++++%%###########%%%###%#####%%%#%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,..... .+##++##%#@#:..+%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%#@#%%%%%#%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@##%%++::+%#@###%%%%%%%%%##%+%#@@@@@#%+++:++%%%###########%%%########%%##%%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,.......%#%++%#%#@#+..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%#%%%%%##%%#%%##%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@##%%++::+%@@@##%%%%%%%%%##%++#@@@@@#%+++:++%%%#####%#####%%%%%%#####%%%%%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:.... .:%+%#%:+####%.,%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%%%###%%%%###%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%%+%
@@##%%++::+%@@@##%%%%%%%+%#@%++%@@@@@#%+++::+%%%#@###%######%%#%%%%%##%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+...  .+++%#%:+@@###,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%###%%%###%%%++++++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%
@@##%%+:::+%#@@##%%%%%%%+%#@%++%@@@@@#%+++::+%%##@##########%%%%%%%%##%%%%%%%%#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+...  .+%%+%+++###@@:,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%###%%%####%%%+++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%++++%%++++
@@##%%+:::+%#@@##%%%%%%%+%###++%@@@@@##%%%++%%###############%%%%%%%%#%%%#%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%......+##+:%#%%#@#@%:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%###%%%###%%%%%++++%+++%%%%%%%%%%%%%%%%%%%%%%%%++++++++++++++++++++++:::::::
@@##%%++::+%#@@###%%%%%%%%###%%##@@######%%%%#########@#######%%%#####%%%%%%%%%%%%#%%%#%%%%%%%%%%%%%%%%%%%%%%%%%.... .+%%+:%#+%#@##%:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%###%%%%###%%%%%%%%%%%%%%%%%+++++++++++++++++++::::::::::::::::::,:,,,,,,,,,,
@@###%%+++%##@@######################################@@########%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,..  .%:+#%++%##@###+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%+++++++:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@@#####%%%###@@######################################@@@###%%###%%#####%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,..  ,%:+##+:%@###@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%+::,,,,,,,,,,,,,,,........................,,............,,,,,
@@@##################################################@@#####%%###%%####%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,..  :+%+%%+:%@##@@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%+,...........................................................
@@@@@#############################################@@@@@@####%%#####%###%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:.   ,%#%::##%%###@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%#%%%%%%%%%%,...........................................................
@@#@#############################################@@@@########%##%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+.  .:%#+:+##+%@@##@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%#%%%%%%%%%%:...........................................................
@################################################@@@@########%%#%####%#%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%+.. .++++%++%%%#@##@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%%%%%##%%%%%%%%%%%...........................................................
#########################################################%####%%########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%....%+:%#%:+#@##@@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%#%%%%%%%%%%%%,..........................................................
#########################################################%%%%#%%%#%#####%%%##%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%. ..%++%#+++##%#@@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%#%%%%%%%%%%%%%+..........................................................
#########################################################%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,...+%#+++#%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%..........................................................
###################################%%%%%%%%%%++%#######%%%%%%%%%%##%%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:...+##+:%##+%@@###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%:.........................................................
@@@##################%%%%%%%%++++++++++::::::::%#######%%%%%%%%%%%#%#%##%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+ ..%+%+++%%%%@##@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%#%%:........................................................
######%%%%%%%%%%%+++++++++:::::::::,,,,,,,,,,,,########%%%%%###%%%##%###%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..,#+:%#%+%@###@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%#%#%%%++:,....................................................
%%%%+++++++++:::::::::::,,,,,,,,,,,,,,,,,,,,,,:########%%%%%%#######%###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..,%++##++%@##@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%#%%%%%%%%%:...................................................
+++::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.+########%%%%%%########%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,.:+%%+%%%%###@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%+...................................................
::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.,.,,....%########%%%%%%%%%%#####%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+,:+##++%#%%#@##@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%:...................................................
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,.......,#########%%%%%%%%%%%######%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,:+%#++%#%%@@##@#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%,.................................................,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........,,:##########%%%%%#%#%#%%####%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#,:%:+%#++#@##@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%%%%%%%%%%###%%%%%%+..................................................,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........,,+##########%%%%%%#%%#######%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#::#:+##++#@##@@##%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%%%%%%%####%%%###%%%%%%...................................................,
:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,............,%##########%%%%%%#%%%%######%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+,%+++%%%#@##@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%#%%%%##########%%#####%:..................................................,
:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..............,##########%%%%%###%%%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,+##++#@##@@##@#%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%%%%#############%%####%..................................................,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............,########%%%%%%%%%%%#%%#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#,+##:+#@##@###@#%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%%%##########@@@@#########:................................................,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............:######%%%%%%%%%%%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#:%+%%%%#@###@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############@@@@@@@@@@@######+...........................................,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,......,,+###%%%#%####%%%%%%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+#++#@%#@#%#@#%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########@@@@@@@@@@@@@@@@####,........................................,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,....,+%%%%%%#############%%%%%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%:+#@%#######@#%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@@@@@@@@@@@@@@@@###+..........................................,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,+%#%%%%%###############%%%%######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##+%#%#@#%#@@%#@#%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###@##@@@@@@@@@@@@@@@@@@@@@@@@#%.............................,...........,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...:%#%%%%%%%%##%%%%%%%%%###%#%%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##+##%%@#%#@###@#%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,........................................,,,,..,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:##%%%%%%%%%%%%%%%%%%%%%%%%%#%#######%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+%#%%####%%@@#%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+..............................................,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:####%%%%%%#######%%%%%#%%%%%#%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##+%#@%%@#+%@@#%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..............................................,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,%##############%%%##%%####%%%%########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##+%@@%%##%%##@#%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+........................................,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,%#####%%%%%%%%%####%%%%%%####%%%#######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%###%+#@%#@#%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:.....................................,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,.,+###%%%%%%#####%#######%%%%####%########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+#@%%@@%+#@%#@#%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#....................................,,:::,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,......,+#%%%%#############%#######%%%##%########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+@@%%##%#%%#@@%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:...................................,,:::::,,,
,,,,,,,,,,,,,,,,,,,,..........,:%%%%#%##############%#%######%%##%##@####%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%%%%%%%#%%###%%#@#%#@@%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%.................................,,,:,::::::,
,,,,,,,,,,,,,,,,..,...........,%%%%#######%%%%%%#####%%%%###########@####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%%@@%%#@#%##@%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,..............................,+::::,.,:::::
,,,,,,,,,,,,,,,,,.,,,.........+%%%%##%%%%#%%%%##########%%%#########@#%##%%%%%%%%%%%%%%%%%%%%%%%%###%#%%%%%%%%%%%%%%##%%#####%%@@#@%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:.............................,+++++::,..,:::
,,,,,,,,,,,,,,,,,.,,.........,%%%%##%%%%%%%%%#############%%#######@@#####%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%#%%%%%%%%+#@%%#@#%%@@##%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.............................:::::+++:,,....