######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
#################################################################@WMWMxMMMW@##########################################################################
############################################################Wxz#*iiiiiiiiiii*+#nM@####################################################################
########################################################@x#*i**iiiiiiiiiiiiiiiiii*+zM@################################################################
#####################################################@x#iiiiiiiiiiiiiiiiiiiiiiiiiiiii*zM##############################################################
###################################################Wz***iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+x@###########################################################
#################################################W#iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*n@#########################################################
###############################################W#iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*x########################################################
#############################################@n*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+M######################################################
############################################M+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*z@####################################################
###########################################n*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+W###################################################
#########################################@#*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*x##################################################
########################################W+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiz@################################################
#######################################M*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#@###############################################
######################################M*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+@##############################################
#####################################M**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+@#############################################
####################################M*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+@############################################
###################################W**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#############################################
##################################W*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiz###########################################
#################################@+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix##########################################
#################################ziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*W#########################################
################################xiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+@########################################
###############################@*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiz########################################
################################iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiM#######################################
##############################Miiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+@######################################
##############################+*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin######################################
#############################xiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*@#####################################
############################@*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii#*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin#####################################
############################x*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*@niiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*@####################################
############################+*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin#@+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix####################################
###########################Miiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+###M*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+####################################
############################iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiM#####iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiM###################################
##########################@*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii######W*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiz###################################
##########################x*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*W######ziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*@##################################
###########################*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin#######@*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*x##################################
#########################@iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+@########xiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiz##################################
#########################xiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*M##########+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**##################################
#########################ziiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii############M*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiW#################################
#########################+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*W#############iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix#################################
########################@iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*iiiiiiiz#############W*iiiiiii*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiz#################################
########################W*iiiiiiiiiiiiiiiiiiiiiiiiiiii*Miiiiii*@##############niiiii*#niiiiiiiiiiiiiiiiiiiiiiiiiiiii##################################
########################xiiiiiiiiiiiiiiiiiiiiiiiiiiiiix##iiiiix###############@*iiii*W@+iiiiiiiiiiiiiiiiiiiiiiiiiiii*#################################
########################n*iiiiiiiiiiiiiiiiiiiiiiiiii*+##@*ii*+#################xiiiiz##Miiiiiiiiiiiiiiiiiiiiiiiiiiiii@################################
########################ziiiiiiiiiiiiiiiiiiiiiiiiiii*W###nii*x##################+iiiW####iiiiiiiiiiiiiiiiiiiiiiiiiii*W################################
#########################iiiiiiiiiiiiiiiiiiiiiiiiiiiz####@+i*z##################WiiiM###@*iiiiiiiiiiiiiiiiiiiiiiiiii*M################################
########################+iiiiiiiiiiiiiiiiiiiiiiiiii*@#####x*i+###################ziin####xiiiiiiiiiiiiiiiiiiiiiiiiiiix################################
########################+iiiiiiiiiiiiiiiiiiiiiiiii*M########ii@##################@*i######+*iiiiiiiiiiiiiiiiiiiiiiiiin################################
########################+iiiiiiiiiiiiiiiiiiiiiiiii#########W*iM###################ni*#####W*iiiiiiiiiiiiiiiiiiiiiiiiin################################
########################+iiiiiiiiiiiiiiiiiiiiiiii*W#########zin###################@+iW#####ziiiiiiiiiiiiiiiiiiiiiiiiin################################
########################+iiiiiiiiiiiiiiiiiiiiiiiin##########@*#####################Mix#####@**iiiiiiiiiiiiiiiiiiiiiiin################################
########################+iiiiiiiiiiiiiiiiiiiiiii+@###########x*######################z######M*iiiiiiiiiiiiiiiiiiiiiiin################################
########################+iiiiiiiiiiiiiiiiiiiiiiiM#############+@####################W+########iiiiiiiiiiiiiiiiiiiiii*x################################
#########################iiiiiiiiiiiiiiiiiiiiii###############MM#####################z@######W*iiiiiiiiiiiiiiiiiiiiiiM################################
#########################iiiiiiiiiiiiiiiiiiiii*W###############W#####################@W#######niiiiiiiiiiiiiiiiiiiii*M################################
########################ziiiiiiiiiiiiiiiiiiiiin###############################################@+iiiiiiiiiiiiiiiiiiiiiW################################
########################n*iiiiiiiiiiiiiiiiiii+#################################################Miiiiiiiiiiiiiiiiiiii*@################################
########################MiiiiiiiiiiiiiiiiiiiiM###################################################*iiiiiiiiiiiiiiiiii+#################################
########################Wiiiiiiiiiiiiiiiiiiiz###################################################W*iiiiiiiiiiiiiiiiii##################################
#########################*iiiiiiiiiiiiiiiii*@####################################################niiiiiiiiiiiiiiiiiin#################################
##########################iiiiiiiiiiiiiiiiix######################################################+iiiiiiiiiiiiiiiiiM#################################
#########################niiiiiiiiiiiiiiii+#######################################################Miiiiiiiiiiiiiiii*@#################################
#########################WiiiiiiiiiiiiiiiiW########################################################ziiiiiiiiiiiiii*###################################
##########################*iiiiiiiiiiiiiiz#########################################################@*iiiiiiiiiiiii*n##################################
##########################z*iiiiiiiiiiii*@##########################################################xiiiiiiiiiiiii*W##################################
##########################MiiiiiiiiiiiiiM############################################################+iiiiiiiiiiii+###################################
###########################*iiiiiiiiiii##############################################################Wiiiiiiiiiiiin###################################
###########################niiiiiiiiii*W##############################################################z*iiiiiiiii*@###################################
###########################@*iiiiiiiiin###############################################################@*iiiiiiiiiz####################################
############################z*iiiiii*+@################################################################MiiiiiiiiiW####################################
############################W*iiiiiiiM###################################################################iiiiiii######################################
##############################iiiiii####################################################################W*iiiiiiM#####################################
#############################W*iiii*W####################################################################niiiii#######################################
##############################ziii*n#####################################################################@+*ii*W######################################
##############################@*ii+@######################################################################Miiin#######################################
###############################M**M#########################################################################i+@#######################################
################################zz#########################################################################W*M########################################
################################@@##########################################################################W#########################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
#####################################################################@@@##############################################################################
#####@@@@@@#########@@@@@###########################################MxxxM##@@@@@###########@@@@@@##@@@@@@@@@@########@@@@@@#########@@@@@###@WW@######
#####xxxxxM########@xxxxW###########################################MxxxM##MxxxxW##########Mxxxx@#@xxxxxxxxxxxM@#####Wxxxxx@########MxxxM##@MWWM@#####
#####xxxxxxW#######@xxxxW###########################################MxxxM##@xxxxM#########@xxxxM##@xxxxxxxxxxxxxW####WxxxxxM########MxxxM##M@MMWM#####
#####xxxxxxx@######@xxxxW###########################################MxxxM###xxxxx@########WxxxxW##@xxxxxxxxxxxxxxW###WxxxxxxM#######MxxxM#@W@MM@M#####
#####xxxxxxxM######@xxxxW###########################################MxxxM###WxxxxW########Mxxxx@##@xxxxxxxxxxxxxxx@##Wxxxxxxx@######MxxxM##M@MM@M#####
#####xxxxxxxxW#####@xxxxW###########################################MxxxM###@xxxxM#######@xxxxM###@xxxxW@@@@WxxxxxW##WxxxxxxxM######MxxxM##WM@@MW#####
#####xxxxxxxxx@####@xxxxW###########################################MxxxM####Mxxxx@######WxxxxW###@xxxx@#####WxxxxM##WxxxxxxxxW#####MxxxM###@MM@######
#####xxxxxxxxxM####@xxxxW#######@@WWWW@#######@@@@##@@@@#####@WWW@##MxxxM####WxxxxW######Mxxxx@###@xxxx@######xxxxM##Wxxxxxxxxx@####MxxxM#############
#####xxxxMxxxxxW###@xxxxW#####@MxxxxxxxM@#####xxxx@WxxxW###@MxxxxxM@MxxxM####@xxxxM#####@xxxxM####@xxxx@######xxxxM##WxxxxMxxxxM####MxxxM#############
#####xxxxWWxxxxx@##@xxxxW####@xxxxxxxxxxx@####xxxxMxxxxW##@MxxxxxxxxxxxxM#####Mxxxx@####WxxxxW####@xxxx@#####WxxxxM##Wxxxx@MxxxxW###MxxxM#############
#####xxxxW#MxxxxM##@xxxxW###@xxxxxxxxxxxxx@###xxxxxxxxxW##MxxxxxxxxxxxxxM#####WxxxxW####Mxxxx#####@xxxxW@@@@MxxxxxW##Wxxxx@@xxxxx@##MxxxM#############
#####xxxxW#@xxxxxW#@xxxxW###MxxxxxMWMxxxxxM###xxxxxxxxxW#WxxxxxMWMxxxxxxM#####@xxxxM###@xxxxM#####@xxxxxxxxxxxxxxx@##Wxxxx@#WxxxxM##MxxxM#############
#####xxxxW##Wxxxxx@@xxxxW##@xxxxM@###@xxxxx@##xxxxxxW@@@#xxxxxW###@MxxxxM######Mxxxx@##Wxxxx@#####@xxxxxxxxxxxxxxW###Wxxxx@##MxxxxW#MxxxM#############
#####xxxxW###MxxxxM@xxxxW##Mxxxx@#####WxxxxW##xxxxx@####@xxxxW#####@xxxxM######WxxxxW##MxxxM######@xxxxxxxxxxxxxW####Wxxxx@##@xxxxx@MxxxM#############
#####xxxxW###@xxxxxMxxxxW##MxxxM#######xxxxM##xxxxM#####Wxxxx@######MxxxM#######xxxxM#@xxxxW######@xxxxxxxxxxMW@#####Wxxxx@###WxxxxMMxxxM#############
#####xxxxW####WxxxxxxxxxW##MxxxM#######xxxxM##xxxxW#####Wxxxx@######WxxxM#######Mxxxx@Wxxxx@######@xxxxW@@@@#########Wxxxx@####MxxxxxxxxM#############
#####xxxxW#####MxxxxxxxxW##Mxxxx######@xxxxM##xxxxW#####Wxxxx@######MxxxM#######@xxxxWMxxxM#######@xxxx@#############Wxxxx@####@xxxxxxxxM#############
#####xxxxW#####@xxxxxxxxW##WxxxxW#####WxxxxW##xxxxW#####@xxxxM#####@xxxxM########MxxxxxxxxW#######@xxxx@#############Wxxxx@#####WxxxxxxxM#############
#####xxxxW######WxxxxxxxW##@xxxxxW###Wxxxxx@##xxxxW######MxxxxM###@MxxxxM########Wxxxxxxxx@#######@xxxx@#############Wxxxx@######MxxxxxxM#############
#####xxxxW#######MxxxxxxW###MxxxxxxMxxxxxxW###xxxxW######WxxxxxxMxxxxxxxM########@xxxxxxxM########@xxxx@#############Wxxxx@######@xxxxxxM#############
#####xxxxW#######@xxxxxxW###@MxxxxxxxxxxxM####xxxxW#######MxxxxxxxxxxxxxM#########MxxxxxxW########@xxxx@#############Wxxxx@#######WxxxxxM#############
#####xxxxW########WxxxxxW####@MxxxxxxxxxM#####xxxxW#######@MxxxxxxxxMxxxM#########Wxxxxxx#########@xxxx@#############Wxxxx@########MxxxxM#############
#####xxxxW#########MxxxxW######WMxxxxxMW######xxxxW#########WxxxxxM@WxxxM#########@xxxxxM#########@xxxx@#############Wxxxx@########@xxxxM#############
#################################@@@@#########################@@@@####################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################