#####################################################################################################
#####################################################################################################
##############################################@W###@#################################################
#############################################@WMxn###nWW@############################################
############################################M+:,,,...,:;ix###########################################
##########################################@z:............;W##########################################
##########################################n,...........,,,n##########################################
#########################################@*,.,:;i;::,,,,,,x##########################################
#########################################@i.,**i***++##++ix##########################################
#########################################W:.:*;iiii;i;;;iiz##########################################
#########################################M,.:+iiiiiiiiii;*+##########################################
#########################################@:.,+;iiiiiiiiii*x##########################################
#########################################@;.:+iiiiiiiiiiiix##########################################
#########################################@;,:+iii;;iiiiii;+@#########################################
#########################################@i,,*iii**iiii*+**@#########################################
##########################################i.,*iii*iiiiiiii*@#########################################
##########################################+.,*iii+#*iii+#i*@#########################################
##########################################x;;*iii**ii**iii*n@########################################
##########################################W+*iiiiiiiii+;iiizW########################################
##########################################M**;iii;iiii+iiiiz@########################################
##########################################@#+iiiiiiiii+iiii#@########################################
###########################################z;iiiiiiiii**iii#@########################################
###########################################M+iiiiiii+*ii*;in#########################################
###########################################@#;iiiiiii*++iiiM#########################################
############################################niiiiiiiiiiiii*@#########################################
############################################W*;iiiiiii**ii###########################################
############################################@z*iiiii*+++*iz##########################################
#############################################x+iiiiii;*iiiz##########################################
#############################################W**iiiiiiiiiin##########################################
#############################################@+iiiiiiiiiiin##########################################
##############################################z;i**iiiiii*M##########################################
##############################################niii*+++++MW###########################################
##############################################xiiii;iii+@W###########################################
##############################################xiiii;i*izMW@@@########################################
########################################@#@@@Mxz+iiii*#nnnxM@@@@@@###################################
#######################################@WMxxxnnnnnzznnnnnnnnnxxxxxW@#################################
######################################@xnnnnnnnnnnnnnnnnnnnnnnnnnnnM#################################
######################################MnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW################################
######################################xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx@###############################
#####################################@xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx@###############################
#####################################Wnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn@###############################
#####################################WnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnW###############################
#####################################@nnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnW###############################
#####################################@xnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnM###############################
#####################################@xnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnM###############################
#####################################Wxnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnx@##############################
#####################################@xnnxnnnnnnnnnnnnnnnnnnnnnnnnnnnx@##############################
#####################################@xnxxnnnnnnnnnnnnnnnnnnnxnnnnnnnx@##############################
#####################################@xnxxnnnnnnnnnnnnnnnnnnnxnnnnnnnn@##############################
#####################################@xnxnnnnnnnnnnnnnnnnnnnnxnnnnnnnnM##############################
#####################################@Mzxxnnnnnnnnnnnnnnnnnnnxnnnnnnnnx##############################
######################################nizxnnnnnnnnnnnnnnnnnnnxnnnnnnnnx@#############################
######################################ni#nnnnnnnnnnnnnnnnnnnnxxnnzz#+nW@#############################
######################################zi+nnnnnnnnnnnnnnnnnnnnnx*iiiii#@@#############################
######################################zi+nnnnnnnnnnnnnnnnnnnnnxiii;ii+@##############################
######################################zi+nnnnnnnnnnnnnnnnnnnnnniii;ii+@##############################
######################################zi+xnnnnnnnnnnnnnnnnnnnnn*iiiii*@##############################
######################################zi*nnnnnnnnnnnnnnnnnnnnnx*;iiii*@##############################
######################################zi*nnnnnnnzznnnnnnnnnnnnx+iiiii*@##############################
######################################niinnn#+#+***nnnnnnnnnnnn+iiiii*@##############################
######################################niinnn++*+###znnnnnnnnnnn#;ii;i*@##############################
######################################xiinnniii##+++nnnnnnnnnnnz*iiii*@##############################
######################################xi*xnni##*iii#xnnnnnnnnn#*iiiii*@##############################
######################################xi+xnn#n#zzn+i+nnnnnnz*iiiiiiii*W##############################
######################################n;#xnxxxxnz#+ii*nxz+*iiiiiiiiii*W##############################
######################################ziznnxxn+iiiii+i+niiiiiiiiiiiii*W##############################
#####################################@+innnxnz++++ii*;*n*;;iiiiiiii*+n@##############################
#####################################@**nnnxxn*iiiii*;*z+;iiiiii*+nM@M@##############################
#####################################@*+nnnxMn#++*iii;*n*;ii*+#nnx@##################################
#####################################@i#nnnn*zn++*++*izn+#znnnnnnx@##################################
#####################################@*znnnnii*iiii+xnxxnnnnnnnnnxW##################################
#####################################@*nnnnn+i***ii#nnnnnnnnnnnnnx@##################################
#####################################@+xnnnnnzz###znnnnnnnnnnnnnnn@##################################
#####################################@+nnnnnnnnnnnnnnnnnnnnnnnnnnnW##################################
#####################################@#nnnnnnnnnnnnnnnnnnnnnnnnnnnW##################################
#######################################znnnnnnnnnnnnnnnnnnnnnnnnnnW##################################
######################################zznnnnnnnnnnnnnnnnnnnnnnnnnnW##################################
######################################z#nnnnnnnnnnnnnnnnnnnnnnnnnx@##################################
######################################n+xnnnnnnnnnnnnnnnnnnnnnnnnM###################################
######################################niznnnnnnnnnnnnnnnnnnnnnnxx@###################################
######################################xi*xxnnnnnnnnnnnnnnnnnxxxnnW###################################
######################################xiinnxMxnnnnnnnnxxnnnxxnnzn@###################################
######################################xiinzzzxxxnxxnxxxxxx+zzzz+*W###################################
######################################xii#+z#nn#i**izzzzzn*#+iiiiM###################################
######################################nii+ii*+#+*ii*zz#++*iiiiiiix###################################
#######################################ii+*iiiii****iiiiiiiiiiiiin###################################
#####################################@+ii#**iiiiiiiiiiiiiii*iiiiiz###################################
#####################################Wiii##iiiiiiiiiiiiiiiii+iiiiz@##################################
#####################################xiiiz*iiiiiiiiiiiiiiiii**iii#@##################################
####################################@n*;i#iiiiiiiiiiiiiiiiiii+iii#@##################################
####################################@n+i*ziiiiiiiiiiiiiiiiiiii+ii#@##################################
#####################################x*i*ziiiiiiiiiiiiiiiiiiiiiii#@##################################
#####################################M***ziiiiiiiiiiiiiiiiiiiiiii#@##################################
#####################################@*++ziiiiiiiiiiiiiiiiiiiiiii#@##################################
######################################n+z#iiiiiiiiiiiiiiiiiiiiiiiz###################################
######################################W++#iiiiiiiiiiiiiiiiiiiiiiiz@##################################
#######################################x*#iiiiiiii**iiiiiiiiiiiiiz###################################
#######################################@z+iiiiiiiii+iiiiiiiiiiiiix###################################
########################################@xiiiiiiiii+iiiiiiiiiiiiix###################################
#########################################xiiiiiiiii**iiiiiiiiiiiix###################################
#########################################xiiiiiiiii*+iiiiiiiiiiiiM###################################
#########################################Miiiiiiiiii+iiiiiiiiiiiiM###################################
#########################################W*iiiiiiiii+iiiiiiiiiii*W###################################
#########################################W*iiiiiiiii+*iiiiiiiiii*W###################################
#########################################W*iiiiiiiii+*iiiiiiiiii*W###################################
#########################################@*iiiiiiiii#+iiiiiiiiii*@###################################
#########################################@+iiiiiiiii##iiiiiiiiii*@###################################
###########################################iiiiiiiiizziiiiiiiiii+@###################################
#########################################@ziiiiiiiiizziiiiiiiiii+@###################################
#########################################@#iiiiiiiiinniiiiiiiiii+@###################################
#########################################@#iiiiiiiiinniiiiiiiiiiz####################################
#########################################@#iiiiiiiiixniiiiiiiiiiz####################################
#########################################@#iiiiiiiiiMxiiiiiiiiiiz####################################
###########################################iiiiiiiiiMMiiiiiiiiiiz####################################
###########################################iiiiiiiiixMiiiiiiiiiin####################################
##########################################+iiiiiiiiiMMiiiiiiiiiin####################################
#########################################@+iiiiiiii*WW*iiiiiiiiix####################################
#########################################@+iiiiiiii*WW*iiiiiiiiin####################################
#########################################@*iiiiiiii*WW*iiiiiiiiin####################################
#########################################@*iiiiiiii*WW*iiiiiiiiin####################################
#########################################@*iiiiiiii*@@+iiiiiiiiix####################################
#########################################@+iiiiiiii*@@+iiiiiiiiix####################################
#########################################@+iiiiiiii+@@+iiiiiiiiix####################################
#########################################@+iiiiiiii+@@#iiiiiiii*M####################################
#########################################@+iiiiiiii+@@#iiiiiiii*W####################################
#########################################@+iiiiiiii+@@#iiiiiiii*W####################################
#########################################@+iiiiiiii+@@#iiiiiiii*@####################################
#########################################@+iiiiiiii#@@#iiiiiiii+@####################################
#########################################@+iiiiiiii#@@#iiiiiiii+@####################################
###########################################iiiiiiii#@@#iiiiiiii+M@###################################
###########################################iiiiiiii#@@#iiiiiiii+M@###################################
###########################################iiiiiiii#@@#iiiiiiii#@####################################
###########################################iiiiiiii+@@#iiiiiiiiz#####################################
###########################################iiiiiiii#@@#iiiiiiiiz#####################################
###########################################iiiiiiii##@#iiiiiiiiz#####################################
#########################################@+iiiiiiii##@#iiiiiiiin#####################################
#########################################@*iiiiiiii#@@#iiiiiiiin#####################################
#########################################@+iiiiiiii#@@+iiiiiiiiz#####################################
#########################################@zzz#*iiii#@@+iiiiiiii#@####################################
######################################@@Wxnxnznz#**z#W**+####+i+@####################################
###################################@MxnnznnnzzzzzzzM#M+zznnnnnzz@####################################
##################################@nzzzzzzzzzzzzzzzM#Wzzznnnnzzn@####################################
##################################MzzzzzzzzzzzzzzznW#@nzzzzzzzzzW####################################
##################################xzzzzzzzzzzzzznxxW#WzzzzzzzzzzW####################################
#################################@MnzzzzzzzznxxMxxM@#Mzzzzzzzzzz@####################################
##################################WMxxxxxxxxMMW@@####Wzzzz#zzzzx@####################################
###################################@W@WWWW@@#########@MxxxxxxxnM#####################################
######################################################@WMxxxxxxW#####################################
#######################################################@#@@@@@@######################################
#####################################################################################################