#include<stdio.h>
#include<algorithm>
#include<string.h>
#define nmax 36111
using namespace std;
int w,n,poz[nmax],p,u,i,nr,N;
char v[nmax][20],aux[20];
int cmp(int a, int b){
int A = strlen(v[a]), B = strlen(v[b]);
if( A > B ) return 1;
if( B > A ) return 0;
if( strcmp(v[a], v[b]) == 1 ) return 1;
return 0;
}
int egale(int a, int b){
if( strlen( v[a] ) == strlen( v[b] ) && strcmp(v[a],v[b]) == 0 ) return 1;
return 0;
}
void up(int Poz, int n){
int c = Poz,t;
t = c >> 1;
while( cmp( c , t ) && t ){
strcpy(aux,v[c]);
strcpy(v[c],v[t]);
strcpy(v[t],aux);
c = t; t = c >> 1;
}
}
void down(int Poz, int n){
int c,t = Poz;
c = t << 1;
if( c < n && cmp( c+1, c ) )
c++;
while( c <= n && cmp( c, t ) ){
strcpy(aux,v[c]);
strcpy(v[c],v[t]);
strcpy(v[t],aux);
t = c;
c = t << 1;
if( c < n && cmp( c+1, c ) )
c++;
}
}
void sort(){
for(i=2; i<=n; i++)
up(i,i);
for(i=n; i > 1; i--){
strcpy(aux,v[1]);
strcpy(v[1],v[i]);
strcpy(v[i],aux);
down(1,i-1);
}
}
int main(){
FILE *f = fopen("restante.in","r");
FILE *g = fopen("restante.out","w");
fscanf(f,"%d\n",&n);
for(i=1; i<=n; i++){
fscanf(f,"%s",v[i]);
poz[i] = i;
N = strlen(v[i]);
sort(v[i], v[i] + N);
}
sort();
nr = 0;
for(i=1; i<=n; i++){
//u = poz[i-1]; p = poz[i]; w = poz[i+1];
if( ! egale (i,i-1) && ! egale (i,i+1) )
nr++;
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}