#include<stdio.h>
#include<string.h>

int N,c2n[29],nf[10],p;
char S[13][10],ch[10];

int s2i(char *s)
{
	int res=c2n[s[0]-'A'],i;
	if(strlen(s)>1&&res==0)return -1;
	for(i=1;s[i];i++)
	{
		res*=10;
		res+=c2n[s[i]-'A'];
	}
	return res;
}

int dfs(int d)
{
	int res=0,tmp=0,ans=0,i,t;
	if(d==p)
	{

		for(i=0;i<N-1;i++)
		{
			t=s2i(S[i]);
			if(t<0)return 0;
			tmp+=t;
		}
		ans=s2i(S[N-1]);
		return ans==tmp;
	}
	for(i=0;i<10;i++)
	{
		if(nf[i]==0)
		{
			nf[i]=1;
			c2n[ch[d]-'A']=i;
			res+=dfs(d+1);
			nf[i]=0;
		}
	}
	return res;
}

int main()
{
	int i,j,k;
	for(;scanf("%d\n",&N),N;)
	{
		p=0;
		memset(ch,0,sizeof(ch));
		for(i=0;i<N;i++)
		{
			gets(S[i]);
			for(j=0;S[i][j];j++)
			{
				for(k=0;k<p;k++)
					if(ch[k]==S[i][j])
						break;
				if(k==p)
				{
					ch[k]=S[i][j];
					p++;
				}
			}
		}
		printf("%d\n",dfs(0));
	}
	return 0;
}