################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
##################################################WxMMx#########################################################
################################################xxMMWWMx########################################################
###############################################xMWWWMxnz+#######################################################
##############################################MMWWxnz###+#######################################################
#############################################xMWWMnz#+++++######################################################
############################################nMWWWMzz#++####+#n##################################################
############################################zWWWWMnzzn+*+x#*+x##################################################
############################################nWWWWMxzzx+i*z#++n##################################################
############################################xWWWWMnnMMx#zz+#z@##################################################
############################################xW@WWxnxz#nxzzxMz###################################################
############################################zW@WWMMnz#+**+zz#+##################################################
#############################################W@MxxMxnnz#+zn#+###################################################
#############################################M@Mnxxxxnnz#nzzxn##################################################
#############################################@@@nznMxxnnznnzzn##################################################
##############################################@@WnxMMxxnxMxnxxn#################################################
###############################################@WWMMMMMxxWWWMx##################################################
################################################WWMMMMWMMMWWWx##################################################
################################################MWMxMMWWWWWMn###################################################
################################################xMWMMMWWWWWW+###################################################
###############################################xnWWMMMWWWWW@nzzW################################################
############################################@nzzxWWMnznMWW@Wxzzz#z##M###########################################
########################################Wn+#zzznxMxMMnnnnMWWxzzzzzzz###z########################################
#######################################+##zzzznnMMnnnzz#zzn@Mzzzzzzzz####*######################################
####################################ni+#zzzzzznnMWx#######nWMzzzzzzzz###z#@#####################################
###################################x#zzzzzzzznnnWWWx#####xWWMzzzznz#zzzzzz######################################
###################################izzzzzznxnnnnWWWMx###xWWWWzzzzzz##zzzzzz#####################################
####################################zzzzzzznnnnnWWW@Mz#xMMWWMnzzzzzz#zzzzzzn####################################
###################################znzznzzzzznnnMMWWWMxMWWMMMnzzzzzzzzzzzzzz####################################
###################################znznzznzznznxMMMMMMMMMMMMMxzzzzzzzzzzzzz#####################################
###################################nnnnnznnznnnxMMMMMMnMMMMMMxzzzzzzzzznzzzz####################################
##################################znnnxnnnnzznnxMMMMMMMMMMMMMxzzzzzzzzznzzzzx###################################
##################################znnnxnnnnzzznxMMMMMMMMMMMMMxzzzzzzzzznzzzzz###################################
#################################MznnnxnnnnzznnnMMMMMMMMMMMMMxzzzzzznnnxzzzzz###################################
#################################znnnnxxnnnnznnnMMMMMMMMMMMMMxzzzzznnnnxnzzzzW##################################
#################################znnnnxxnnnnznnnMMMMMxxWMMMMMxzzzzznnnnxnzzzzz##################################
#################################znnnxxMxxnxznnnWWMMMMMMMMMMMxzzzznnnnnxnnzzzz##################################
#################################znnnnxMxxnxnznnWWWMWMMMMMMMMMzzzznnnnxMxnzzzzn#################################
################################zzznxxxMxMxnxznzWMMWWWMMMWWWWMzzzzxnnnxMxnzzzzz#################################
###############################znxnzznnMxMxxxznzWWMMWWWWWWWWWMzzznnnnxxWxnnzzz#@################################
###############################znnnnnxMWMxMxMnnzMWWWWWWWWWWWWMzzznnnxxxWxxxnnzzM################################
##############################+zzznnnnxWMxMxxxnzMWWWWxxMMMWWWWzzzxnnxxMWxxxxnnzz################################
##############################xMxxxxxxxWWxMMxMzzMWWWWMMMMMMWWWzzznnxxxMMMWWMMMxn################################
##############################MxnxxxMMxMWMxMxMnzMWWWWMMMMMWWWWnznnxxxMMWMnnnxnxM################################
##############################xxxnnnnnxMxMxMxMxzMWWWWMMMMMWWWWnzxxxxMnMxzzzzznznn###############################
##############################nnnnnzznnxxnxxMxMzMWWWWWMMMMWWW@xnxxxMMxznnzzznxnx################################
###############################xMxnznnnnMxnnMxWnxWWWWMWMMWWWWWMznxxMxnnznnzzznxz################################
##############################MMMxnnnnnnxxxnMMWxMWWWWnMWWWWWWWWnxxMxnznnzzzznxM#################################
###############################MMxnnnnnnnnnxnxn#MWWWWWWWWWWWW@Wxzxxzzzzzzznnnn@#################################
###############################MMxxnnnnnnnnn##zxWWWWWWWWWWWWW@M##+zzzzzznnMxzz##################################
################################MMMxnxnnxnnz##+#MWWWWWWWWWWWWWn+##+znzznznMWW###################################
#################################WMxxxnnxnx###znMWWWWWWWWWWWWWMn#+#zzzzxxnnxW###################################
##################################WMMMxnxxMnnz#nWWWWWWWWWWWWW@W##z##nnnxMxn#####################################
###################################WMMxnxMMzznxM@@WWWWWWWWWWW@@xz+#zxxxnxM######################################
####################################WMxxxWWnzz#M@WWWWWWWWWWWW@@x#nzznxMxx#######################################
#####################################MMxxWMMxxM@@WWWWWWWWWWWW@@@MzzMnxxM########################################
######################################@MM#xWWW@@@@W@WWWWWWWW@@@@@W@WxMx@########################################
#######################################WWM@W@@@@@@@@WWWWW@@@@@@@@W@WxMn#########################################
#######################################@WWWMW@@@@@@@WWWWW@@@@@@@@WWWWMn#########################################
#######################################WWWWMM@@@@@@@@@@@@@@@@@@@WMWWMMn#########################################
#######################################WWWMMM@#@@@@@@@@@@@@@@@@@@MxMnnnz########################################
######################################@WWMMMW@@@@@@@@@@@@@@@@@@@@Mnxnnnx########################################
######################################@WWxMMW@@@@@@@@@@@@@@@@@@@@Mnnnnnn########################################
######################################@MMxWM@@@@@@@WWWWWWW@@@@@@@Mnnnnnn########################################
######################################@MxMWW@@WW@W@WWWWWWWWWWW@@@Wnnnnnnz#######################################
######################################@xxMWW@@WWWWW@WWWWWWW@@@@@@Wnnnnnnn#######################################
######################################WxxWW@@@@@WWW@@@WWW@@@@@@@@WnnnnnnW#######################################
######################################@MxWW@@@@@@@@@@@@@@W@@@@@@@WnnnnnnW#######################################
#######################################MMW@@@@@@@@@@@@@@@@WWW@@@@@nnnnnnM#######################################
#######################################MWW@@@@@@@@@@@@@@@@@@W@@@@@xnnnnnn#######################################
#######################################xW@@@@@@@@@@@@@@@@@@@@@@@@@xnnnnnn#######################################
######################################@M@@@@@@@@@@@@@@@@@@@@@WWW@@xnnnnnx#######################################
######################################WM@@@@@@@@@@@@@@@@@@@@@@@@@@MnnnnnM#######################################
######################################MW@@@@@@@@@@@@@@@@@@@@@WWW@@WnnnnWM#######################################
######################################WW#@@@@@@@@@@@@@@@@@@@@@WWW@@xnnWWx#######################################
######################################@##@@@@@@@@@@@@@@@@@@@@@@@@@@MxWWWW#######################################
#########################################@@@@@@@@@@@@@@@@@@@@WW@@@@@@WWWW#######################################
#########################################@@@@@@@@@@@@@@@@@@@@@@WW@@@@WWWM#######################################
#########################################@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWW#######################################
#########################################@@@@@@@@@@@@@@@@@@@@@WW@@@@WWWWW#######################################
#########################################@@@@@@@@@@@@@@@@@@@@@@W@WWW@WWWW#######################################
#########################################@@@@@@@@@@@@@@@@#@@@@@@WWWWWWWWW#######################################
#########################################@@@@@@@@@@@@@@@@#@@@@@@@WWWWWWWW#######################################
#########################################@@@@@@@@@@@@@@@@#@@@@@@@@WWWWWWM#######################################
#########################################@@@@@@@@@@@@@@@@##@@@@@@@WWWWWWW#######################################
#########################################@W@@@@@@@@@@@@@@###@@@@@@WWWWWWW#######################################
##########################################@WW@@@@@@@@@@@@###@@@@@@@WWWWWM#######################################
##########################################@WWW@@@@@@WW@@@####@@@@@@WWWWWW#######################################
##########################################@@WWW@@@@WW@@@@####@@@@@@@@WWWW#######################################
###########################################@@WWWW@@@@@@@@####@@@@@@@@@WWW#######################################
###########################################@@@WWWW@@@@@@@####@@@@@@@@@@@@#######################################
###########################################@@@@@@@@@@@W@#####@@@@@@@@@@@WW######################################
###########################################@@@@@@@@@@@@@######@@@@@@@@@@@@######################################
###########################################@@@WWW@@@WW@@######@@@@@@@@@@WW######################################
###########################################@@@WWWWWWW@@@######@@@@@@@@@@WW######################################
############################################@@@@W@@@@@@@######@@@@@@@@W@@@######################################
###########################################@@@@@@@@@@@@@######@@@@@@@W@@WW######################################
###########################################@@@@@@@@WW@@@######W@@@WWW@@@WW######################################
###########################################@@@@WWWWW@@@@######@@@@@@@@@@WWW#####################################
###########################################@@@WWWWW@@@@@######@@@@@@@@@@WW@#####################################
###########################################@@@WWW@@@@@@@#######@@@@@WW@@@W@#####################################
###########################################@W@@W@@@@@@@@#######@@@@@@WWWW@@#####################################
###########################################@WW@WW@@@@@WW#######@@@@@@WWWW@@#####################################
###########################################@WW@@WW@@@@W@#######@@@@@@@@W@@@#####################################
###########################################@WW@@WW@@@@WW#######@@@@@@@@@WW@#####################################
############################################WWW@@WW@@WWW#######@@@@@@@@@WWW#####################################
############################################WWW@@WWWWWWW#######@@@@@@@@@WWW#####################################
############################################WWWW@@WWWWWW#######@@@@@@@@@WWW@####################################
############################################WWWWW@@WWWWW########@@@@@@@@WWW@####################################
############################################WWWWW@@WWWWW########@@@@@@@@WWWM####################################
############################################WWWWWW@@WWWW########W@@@@@@@@@WW####################################
############################################W@@WWWWWWWWW########W@@@@@@@WWWW####################################
############################################W@@@WWWW@WWW########WW@@@@@@WWWW####################################
############################################M@@@@@@@@@WW#########WWW@@@@WWWM####################################
############################################MWWWWWWWWWWW#########WWWWW@@@WWM####################################
############################################nWWWMMWWWWMM#########@@WWWWW@WWM####################################
############################################nMWWMMWWWMM##########@@WWWWWWWWW####################################
############################################@xWWWMWWWMM###########@@@WWWWWMM####################################
############################################MxWWWWWMMxn###########@@@@@@@WMM####################################
############################################nMWWWWWMMn############WW@@@WWWWMz###################################
###########################################MxWWWWWWWM##############WW@@WWWMMM###################################
###########################################MMWWWWWWM###############WWWWWMWMMWxz#################################
###########################################WMWWWWWWM################WWWWWWWMWWnz################################
###########################################WxMWMWWMx##################MMWWWMMWMz################################
############################################xMMMMMxn###################xMWWMMWWM################################
############################################xxxxxxM####################zMWWMMMWMx###############################
#############################################MMxnM#####################zMMMWWWWMM###############################
########################################################################zxMMWWWMMx##############################
#########################################################################xMMMMxMMx##############################
###########################################################################MMMxnnn##############################
############################################################################MMxxx###############################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################