#include <stdio.h>
#include <string.h>
int n, contor, c, poz;
char a[36001][17];
void qsort1(char a[], int lo, int hi)
{
int h, l, p, t;
if (lo < hi) {
l = lo;
h = hi;
p = a[hi];
do {
while ((l < h) && (a[l] <= p))
l = l+1;
while ((h > l) && (a[h] >= p))
h = h-1;
if (l < h) {
t = a[l];
a[l] = a[h];
a[h] = t;
}
} while (l < h);
t = a[l];
a[l] = a[hi];
a[hi] = t;
qsort1( a, lo, l-1 );
qsort1( a, l+1, hi );
}
}
void qsort2(int lo, int hi)
{
int h, l;
char p[17], t[17];
if (lo < hi) {
l = lo;
h = hi;
strcpy (p,a[hi]);
do {
while ((l < h) && (strcmp(a[l], p) <= 0))
l = l+1;
while ((h > l) && (strcmp(a[h], p)>= 0))
h = h-1;
if (l < h) {
strcpy(t,a[l]);
strcpy(a[l],a[h]);
strcpy(a[h],t);
}
} while (l < h);
strcpy(t,a[l]);
strcpy(a[l],a[hi]);
strcpy(a[hi],t);
qsort2( lo, l-1 );
qsort2( l+1, hi );
}
}
int main()
{
freopen("restante.in","r",stdin);
freopen("restante.out","w",stdout);
scanf("%d", &n);
int i, t;
for (i = 1; i <= n; i++)
{
scanf("%s",&a[i]);
poz = i;
t = strlen(a[i]);
qsort1(a[i],0,t-1);
}
qsort2(1,n);
for (i = 1; i <= n; i++)
if (strcmp(a[i], a[i-1]) && strcmp(a[i],a[i+1])) contor++;
printf("%d\n",contor);
return 0;
}