#include<bits/stdc++.h>
#define MASK(i) (1LL << (i))
#define BIT(x,i) (((x)>>(i))&1)
using namespace std;

const long long MaxN = 25;
const long long MaxDP = MASK(MaxN);

long long n, a[MaxN];
int dp[MaxDP];
string s[MaxN];

void input()
{
    cin >> n;

    for (long long i = 0; i < n; i++)
    {
        cin >> s[i];
    }
}

void solve()
{
    for (long long i = 0; i < n; i++)
    {
        for (long long j = 0; j < s[i].size(); j++)
        {
            a[i] |= MASK(s[i][j] - 'a');
        }
    }

    dp[0] = 0;

    for (long long i = 0; i < n; i++)
    {
        dp[MASK(i)] = a[i];
    }

    for (long long mask = 1; mask < MASK(n); mask++)
    {
        long long tmp = mask & -mask;

        dp[mask] = dp[tmp] | dp[mask ^ tmp];
    }

    int full = MASK(26) - 1;
    long long ans = 0;

    for (long long mask = 0; mask < MASK(n); mask++)
    {
        if (dp[mask] == full)
        {
            ans++;
        }
    }

    cout << ans;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    input();
    solve();

    return 0;
}
