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