#include<iostream>
#include<cstdio>
#include<cstring>
#define mo 21313
int n,m,i,j,k,ans;
struct SC
{
int len;
char s[1505];
} f[mo],t;
int hx()
{
int i=t.s[t.len-1]*t.len%mo; //哈希值
while(f[i].len&&strcmp(t.s,f[i].s))
{
if(++i==mo)
i=0; //加1后自动取模
} //从哈希值开始找,直到找到空位或自己
return i;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%s",t.s);//记录字符串
t.len=strlen(t.s); //记录字符串长度
k=hx();
if(f[k].len)
ans++; //统计重复单词数
else
f[k]=t; //是空位,填进去
}
printf("%d\n",n-ans);//总数减去重复个数
return 0;
}