//第一题
//当时一直没看懂题意,后来没时间了,反正就是水,受不了自己
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
int n, res, vis[1000];
string s[100];

void dfs(int k, char c)
{
    if(k == n) {res++; return ;}
    int ok = 0;
    for(int j=0; j<s[k].size(); j++)
    {
        if(!vis[s[k][j]])
        {
            vis[s[k][j]] = 1;
            dfs(k+1,s[k][j]);
            vis[s[k][j]] = 0;
            ok = 1;
        }
    }
    if(ok == 0) return ;
}

int main()
{

    while(cin >> n)
    {
        memset(vis, 0, sizeof(vis));
        for(int i=0; i<n; i++)
            cin >> s[i];
        res = 0;
        for(int j=0; j<s[0].size(); j++)
        {
            vis[s[0][j]] = 1;
            dfs(1,s[0][j]);
            vis[s[0][j]] = 0;
        }
        printf("%d\n", res);
    }
    return 0;
}