######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
#########################################################@@@WWW@@@@###################################################################################
######################################################@WWWWWWWWWWWWW@@################################################################################
###################################################@WWWWWWWWWWWWWWWWWWW@##############################################################################
##################################################WWWWWWWWWWMMMMMMWWWWWW@#############################################################################
################################################@WWWWWWWMMMMMMMMMMMMMMWWWW############################################################################
###############################################@WWWWWMMMMMMMMMMMMMMMMMMMWW@###########################################################################
##############################################@WWWWMMMMMMMMMMMMMMMMMMMMMMMW@##########################################################################
#############################################@WWWWMMMMMMMMMMMMMMMMMMMMMMMMMW##########################################################################
############################################@WWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMW#########################################################################
###########################################@WWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@########################################################################
###########################################WWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@#######################################################################
##########################################@WWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#######################################################################
#########################################@WWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW######################################################################
#########################################WWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM@#####################################################################
########################################@WWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW#####################################################################
########################################WWWMnxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW#####################################################################
########################################WWWxnnnxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#####################################################################
#######################################@WWWnnnnnxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#####################################################################
#######################################WWWMnnnnnnnxMMMMMMMMxxxxxxxMMMMMMMMMMMMMMM@####################################################################
######################################@WWWxnnnnnnnnnxMMMMxxxxxxxxxxxxMMMMMMMMMMMMW####################################################################
###################################@WMMWWWxnnnnnnnnnnnxxxxxxxxxxxxxxxxMMMMMMMMMMMM####################################################################
##################################MxxxWWWWxxxnnnnnnnnnxxxxx+;,,,:*nxxxxMMMMMMMMMMMW###################################################################
#################################MxMWWWWWWMxxxnnnnnnnnxxxz:,,,,,,,,+xxxxMMMMMMMMMMM@##################################################################
################################MxMWWWWWWWWMxxxnnnnnnxxxz,,,,,,,,,,,+xxxMMMMMMMMMMMM@#################################################################
###############################WxMWWWWWWWWWWMxxxnnnnnxxn:,,,,,,,,,,,,zxxxMMMMMMMMMMMMM@###############################################################
##############################@xMWWWWWWWWWWWWMxxxnnnxxx*,,,,,,,,,,.,,;xxxMMMMMMMMMMMMxxW##############################################################
##############################WxWWWWWWWWWWWWWWxxxnnnxxx:,,,,,,,,,,,,,,nxxMMMMMMxMMMMMxxx@#############################################################
##############################xMWWWWWWWWWWWWWWMxxxnnxxn,,,,,,,,,,,,,,,#xxxxnnnnnnxMMxxnxW#############################################################
#############################@xWWWWWMxxMWWWWWWWxxxnnxxz,,,,,,,,,,,,,,,#xxxnnnnnnnxxMxn,iM#############################################################
#############################WxWWWWMxxxxMWWWWWWMxxnnxxn,,,,,,,,,,,,,,,#xxxnnnnnnnnxxx*,,x#############################################################
#############################WMWWWWxxxxxxMWWWWWMxxnnxxx,,,,,,,,,,,,,.,nxxnnnnnnnnnnxx:,,n#############################################################
#############################MMWWWMxxxxxxMWWWWWMxxxnxxx;,,,,,,,,,,,,,:xxxnnnnnnnnnnnn,,,z#############################################################
#############################MMWWWMxxxxxxMWWWWWMxxxnxxxz,,,,,,,,,,.,,+xxxnnnnnnnnnnnn,,,z#############################################################
#############################MMWWWMxxxxxxMWWWWWMxxxnnxxx*,,,,,,,,,,,;xxxxnnnnnnnnnnnn+,,x#############################################################
#############################WMWWWWxxxxxxWWWWWWMxxxnnxxxx*,,,,,,,,,;nxxxnnnnnnnnnnnnnnz*W#############################################################
#############################WxWWWWMxxxxMWWWWWWMxxxnnnxxxx#:,,,,,:+xxxxnnnnnnnnnnnnnnnnnx@############################################################
#############################@xWWWWWMMMWWWWWWWWMxxnnnnnxxxxxz+++zxxxxxnnnnnnnnnnnnnnnnnnnnM###########################################################
##############################MMWWWWWWWWWWWWWWWxxxnnnnnnxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnxW#########################################################
##############################WxWWWWWWWWWWWWWWMxxxnnnnnnnxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnM########################################################
##############################@xMWWWWWWWWWWWWWMxxxnnnnnnnnnnxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@######################################################
###############################WxWWWWWWWWWWWWMxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW#####################################################
################################MMWWWWWWWWWWMxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnM####################################################
################################@xMWWWWWWWWMxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx###################################################
#################################@MxMWWWWMMxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx@#################################################
###################################Mxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@################################################
####################################@MMxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@###############################################
#######################################@@xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW##############################################
#########################################Wnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@#############################################
##########################################nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@############################################
##########################################xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@###########################################
##########################################Mnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx###########################################
##########################################@nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnM##########################################
###########################################MMMxxxxnxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW#########################################
#################################################@@WWWMMxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@########################################
########################################################@WWMMMMxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx########################################
#############################################################@@WMMMMxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW#######################################
##################################################################@WMMMMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn#######################################
######################################################################@WMMMxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnM######################################
#########################################################################@WWMMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@#####################################
#############################################################################@WMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx#####################################
################################################################################@WMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW####################################
###################################################################################@Wxnnnnnnnnnnnnnnnnnnnnnnnnnnnx####################################
######################################################################################@MnnnnnnnnnnnnnnnnnnnnnnnnnnW###################################
#########################################################################################Wxnnnnnnnnnnnnnnnnnnnnnnnx###################################
###########################################################################################@Mnnnnnnnnnnnnnnnnnnnnnn@##################################
##############################################################################################WxnnnnnnnnnnnnnnnnnnnM##################################
################################################################################################Wxnnnnnnnnnnnnnnnnnn##################################
##################################################################################################@MnnnnnnnnnnnnnnnnW#################################
####################################################################################################@Wnnnnnnnnnnnnnnx#################################
#######################################################################################################Wnnnnnnnnnnnnn#################################
########################################################################################################@Mnnnnnnnnnnn@################################
##########################################################################################################@xnnnnnnnnnM################################
############################################################################################################Mnnnnnnnnn################################
#############################################################################################################@nnnnnnnn@###############################
###############################################################################################################xnnnnnnW###############################
###############################################################################################################@MnnnnnM###############################
#################################################################################################################Mnnnnx###############################
##################################################################################################################Mnnnn###############################
###################################################################################################################Wnnn@##############################
####################################################################################################################Mnn@##############################
#####################################################################################################################Mn@##############################
######################################################################################################################MM##############################
#######################################################################################################################@##############################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################