######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
################################################################@WMxnnzzz#####zznnxMW@################################################################
###########################################################WMnz++++++++++++++++++++++++#nMW###########################################################
#######################################################@Mz++++++++++++++++++++++++++++++++++zxW#######################################################
####################################################Wx#++++++++++++++++++++++++++++++++++++++++#nW####################################################
#################################################@x#++++++++++++++++++++++++++++++++++++++++++++++#nW#################################################
###############################################Mz++++++++++++++++++++++++++++++++++++++++++++++++++++#M###############################################
############################################@M#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++x@############################################
##########################################@x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x@##########################################
########################################@M++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x@########################################
#######################################M#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++M#######################################
#####################################@z++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#W#####################################
####################################x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n####################################
##################################@z++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#W##################################
#################################M++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x#################################
###############################@z++++++++++++++++++++++++++++++++++#nnxMMWWWWMMxxnz#+++++++++++++++++++++++++++++++++z@###############################
##############################@#++++++++++++++++++++++++++++++zxW@##################@Wxn#++++++++++++++++++++++++++++++W##############################
#############################W++++++++++++++++++++++++++++zxW############################@xz++++++++++++++++++++++++++++M#############################
############################M++++++++++++++++++++++++++zx@##################################@Mz++++++++++++++++++++++++++n############################
###########################x+++++++++++++++++++++++++n@########################################@x#++++++++++++++++++++++++n###########################
##########################n+++++++++++++++++++++++#x@#############################################M#+++++++++++++++++++++++z##########################
#########################n++++++++++++++++++++++#M##################################################M#++++++++++++++++++++++z#########################
########################n++++++++++++++++++++++x@#####################################################M#+++++++++++++++++++++z########################
#######################n+++++++++++++++++++++n@########################################################@n+++++++++++++++++++++z#######################
######################x++++++++++++++++++++#W############################################################W#++++++++++++++++++++n######################
#####################M++++++++++++++++++++n@###############################################################x++++++++++++++++++++x#####################
####################W++++++++++++++++++++M##################################################################W#+++++++++++++++++++M####################
###################@+++++++++++++++++++#W####################################################################@z+++++++++++++++++++W###################
####################++++++++++++++++++z@#######################################################################n++++++++++++++++++#@##################
##################n++++++++++++++++++n##########################################################################x++++++++++++++++++z##################
#################M++++++++++++++++++x#################xzzzzzzzzzzzzzzzzzzzzzW####################################M++++++++++++++++++x#################
################@++++++++++++++++++x##################n+++++++++++++++++++++z#####################################M++++++++++++++++++W################
################z+++++++++++++++++x###################n++++++++++++++++++++++@#####################################M+++++++++++++++++#################
###############M+++++++++++++++++x####################n++++++++++++++++++++++x######################################M+++++++++++++++++x###############
##############@+++++++++++++++++n#####################n++++++++++++++++++++++########################################x+++++++++++++++++W##############
##############n++++++++++++++++z######################n+++++++++++++++++++++++W#######################################n++++++++++++++++###############
#############W++++++++++++++++#@######################n+++++++++++++++++++++++n########################################z++++++++++++++++M#############
#############z++++++++++++++++W#######################n++++++++++++++++++++++++@#######################################@#+++++++++++++++#@############
############M++++++++++++++++M########################n++++++++++++++++++++++++x########################################W++++++++++++++++x############
#############+++++++++++++++z#########################n++++++++++++++++++++++++##########################################x++++++++++++++++@###########
###########M++++++++++++++++@#########################n+++++++++++++++++++++++++W##########################################+++++++++++++++x###########
############+++++++++++++++M##########################n+++++++++++++++++++++++++n#########################################W++++++++++++++++@##########
##########M+++++++++++++++z###########################xzzzzzzzzzzzz++++++++++++++@#########################################n+++++++++++++++x##########
##########z+++++++++++++++W########################################z+++++++++++++x#########################################@+++++++++++++++###########
#########W+++++++++++++++n#########################################M+++++++++++++###########################################x+++++++++++++++M#########
#########n+++++++++++++++@#########################################@++++++++++++++W###########################################++++++++++++++z#########
########@+++++++++++++++x###########################################n+++++++++++++n##########################################M+++++++++++++++@########
########M+++++++++++++++@###########################################W++++++++++++++@###########################################++++++++++++++x########
########z++++++++++++++x#############################################++++++++++++++M##########################################M++++++++++++++#########
#######@+++++++++++++++@#############################################n+++++++++++++#############################################++++++++++++++W#######
#######M++++++++++++++z##############################################W++++++++++++++W##########################################x++++++++++++++n#######
#######z++++++++++++++W################################################+++++++++++++n##########################################@++++++++++++++########
#######++++++++++++++#################################################x++++++++++++++###########################################z++++++++++++++@######
######W++++++++++++++n################################################n++++++++++++++M##########################################M++++++++++++++M######
######x++++++++++++++W###############################################W+++++++++++++++z##########################################@++++++++++++++z######
######z+++++++++++++##################################################++++++++++++++++@##########################################z++++++++++++++######
######++++++++++++++n###############################################x+++++++++++++++++x##########################################x++++++++++++++@#####
#####W++++++++++++++M##############################################@+++++++++++++++++++##########################################W++++++++++++++M#####
#####x++++++++++++++@##############################################z+++++++++++++++++++M##########################################++++++++++++++n#####
#####n+++++++++++++###############################################M++++++++++++++++++++z##########################################z+++++++++++++z#####
#####z+++++++++++++n#############################################@#+++++++++++++++++++++@#########################################x++++++++++++++#####
#####++++++++++++++x#############################################n++++++++++++++++++++++x#########################################M++++++++++++++@####
####@++++++++++++++W############################################W+++++++++++++++++++++++##########################################@++++++++++++++W####
####W++++++++++++++@#############################################++++++++++++++++++++++++W#########################################++++++++++++++M####
####W++++++++++++++############################################x+++++++++++++++++++++++++z##########################################+++++++++++++x####
####M+++++++++++++############################################@+++++++++++++++++++++++++++@########################################z+++++++++++++x####
####x+++++++++++++z###########################################n+++++++++++++++++++++++++++x########################################n+++++++++++++n####
####x+++++++++++++n##########################################M++++++++++++++++++++++++++++#########################################x+++++++++++++z####
####n+++++++++++++n#########################################@#+++++++++++++++++++++++++++++W#######################################M+++++++++++++z####
####n+++++++++++++x#########################################x++++++++++++++#z++++++++++++++n#######################################M+++++++++++++z####
####n+++++++++++++x########################################W+++++++++++++++WM+++++++++++++++@######################################M+++++++++++++z####
####n+++++++++++++x########################################z++++++++++++++n##+++++++++++++++x######################################W+++++++++++++z####
####n+++++++++++++x#######################################M++++++++++++++#@##n++++++++++++++#######################################W+++++++++++++z####
####n+++++++++++++x######################################@+++++++++++++++M###@+++++++++++++++W#####################################M+++++++++++++z####
####n+++++++++++++x######################################n++++++++++++++z#####z++++++++++++++n#####################################M+++++++++++++z####
####n+++++++++++++n#####################################W+++++++++++++++@#####M+++++++++++++++#####################################x+++++++++++++z####
####x+++++++++++++n######################################++++++++++++++x#######+++++++++++++++M####################################x+++++++++++++n####
####x+++++++++++++z####################################x++++++++++++++z########n++++++++++++++#####################################n+++++++++++++n####
####M+++++++++++++####################################@+++++++++++++++W########W+++++++++++++++W###################################z+++++++++++++x####
####W++++++++++++++###################################z++++++++++++++x##########z++++++++++++++n####################################+++++++++++++M####
####@++++++++++++++@#################################M++++++++++++++############M+++++++++++++++###################################++++++++++++++M####
#####++++++++++++++M################################@#++++++++++++++W###########@+++++++++++++++M#################################@++++++++++++++W####
######+++++++++++++x################################n++++++++++++++n#############n++++++++++++++z#################################M++++++++++++++@####
#####z+++++++++++++z###############################W++++++++++++++#@#############W+++++++++++++++@################################x+++++++++++++######
#####n+++++++++++++#################################++++++++++++++M################++++++++++++++n################################z+++++++++++++z#####
#####M++++++++++++++@#############################x++++++++++++++z################M+++++++++++++++################################++++++++++++++x#####
#####@++++++++++++++M############################@+++++++++++++++@################@+++++++++++++++M##############################W++++++++++++++M#####
######++++++++++++++z############################z++++++++++++++x##################n++++++++++++++z##############################x++++++++++++++@#####
######z++++++++++++++@##########################M++++++++++++++####################W+++++++++++++++@##############################+++++++++++++#######
######x++++++++++++++W#########################@#++++++++++++++W#####################++++++++++++++x############################@++++++++++++++n######
######W++++++++++++++n#########################x++++++++++++++x#####################x++++++++++++++##########Mn+W###############x++++++++++++++M######
#######+++++++++++++++@#######################W++++++++++++++#######################@+++++++++++++++M####@Mn++++x################++++++++++++++@######
#######n++++++++++++++M#######################z++++++++++++++W#######################n++++++++++++++z#@Mn+++++++z##############W++++++++++++++z#######
#######M++++++++++++++z######################M++++++++++++++n########################W+++++++++++++++z+++++++++++@#############n++++++++++++++x#######
########+++++++++++++++W####################@+++++++++++++++@##########################++++++++++++++++++++++++++M############@+++++++++++++++@#######
########n++++++++++++++z####################n++++++++++++++M##########################x++++++++++++++++++++++++++z############x++++++++++++++z########
########W+++++++++++++++@##################W++++++++++++++z###########################@+++++++++++++++++++++++++++###########@+++++++++++++++x########
##########++++++++++++++n###################++++++++++++++@############################z++++++++++++++++++++++++++W##########x+++++++++++++++@########
#########x+++++++++++++++W################x++++++++++++++x#############################W++++++++++++++++++++++++++n#########@+++++++++++++++n#########
#########@+++++++++++++++z###############@++++++++++++++#################################+++++++++++++++++++++++++##########x+++++++++++++++W#########
##########n+++++++++++++++W##############z++++++++++++++W###############################x++++++++++++++++++++++++++@#######W+++++++++++++++###########
##########W+++++++++++++++##############M++++++++++++++x################################@++++++++++++++++++++++++++x#######z+++++++++++++++M##########
###########z+++++++++++++++x###########@#+++++++++++++#@#################################z++++++++++++++++++++++++zM######M+++++++++++++++############
###########W++++++++++++++++W##########n++++++++++++++W##################################M++++++++++++++++++++#nW########@++++++++++++++++M###########
############z+++++++++++++++##########W++++++++++++++n#####################################++++++++++++++++zx@###########z+++++++++++++++#############
############W++++++++++++++++n########xnnnnnnnnnnnnnn@####################################x++++++++++++#nW##############x++++++++++++++++M############
#############n++++++++++++++++M###########################################################@+++++++++zx@################W++++++++++++++++##############
#############@+++++++++++++++++W###########################################################z++++#nM@##################@#++++++++++++++++W#############
##############x++++++++++++++++#@##########################################################M+zxW######################z++++++++++++++++n##############
##############@#++++++++++++++++z@##########################################################@########################n+++++++++++++++++@##############
###############W+++++++++++++++++z##################################################################################n+++++++++++++++++M###############
################n+++++++++++++++++z################################################################################n+++++++++++++++++z################
################@#+++++++++++++++++z##############################################################################n++++++++++++++++++@################
#################W++++++++++++++++++z@###########################################################################n++++++++++++++++++M#################
##################M++++++++++++++++++z@#########################################################################z++++++++++++++++++n##################
###################n++++++++++++++++++#W######################################################################@#++++++++++++++++++z###################
###################@#+++++++++++++++++++M####################################################################W#++++++++++++++++++#@###################
####################@#+++++++++++++++++++n@#################################################################x++++++++++++++++++++W####################
#####################W++++++++++++++++++++#W##############################################################@z++++++++++++++++++++M#####################
######################W+++++++++++++++++++++x############################################################M+++++++++++++++++++++x######################
#######################M+++++++++++++++++++++#W########################################################W#+++++++++++++++++++++x#######################
########################M++++++++++++++++++++++zW####################################################@n++++++++++++++++++++++x########################
#########################M+++++++++++++++++++++++nW################################################@n+++++++++++++++++++++++x#########################
##########################M++++++++++++++++++++++++zW############################################Wn++++++++++++++++++++++++x##########################
###########################W+++++++++++++++++++++++++#M@#######################################Mz+++++++++++++++++++++++++M###########################
############################W#++++++++++++++++++++++++++zM@#################################Wn+++++++++++++++++++++++++++M############################
#############################@#++++++++++++++++++++++++++++zxW##########################@Mz++++++++++++++++++++++++++++#W#############################
###############################n+++++++++++++++++++++++++++++++zxMW################WMxz#++++++++++++++++++++++++++++++z@##############################
################################M+++++++++++++++++++++++++++++++++++##znnxxxxnnzz#+++++++++++++++++++++++++++++++++++x################################
#################################W#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#W#################################
###################################x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n@##################################
####################################W#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#M####################################
#####################################@x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n@#####################################
#######################################@n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++zW#######################################
#########################################Wz++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++zW#########################################
###########################################Wz++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++zW###########################################
#############################################Wn++++++++++++++++++++++++++++++++++++++++++++++++++++++++zW#############################################
###############################################@x#+++++++++++++++++++++++++++++++++++++++++++++++++++x@###############################################
##################################################Wn++++++++++++++++++++++++++++++++++++++++++++++nM##################################################
#####################################################Wn#+++++++++++++++++++++++++++++++++++++++nM@####################################################
########################################################@xz#+++++++++++++++++++++++++++++++zxW########################################################
############################################################@Mxz#++++++++++++++++++++#znM@############################################################
##################################################################@WMMxxxnnnnnxxMMW@##################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################