#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
int m,n,k,p,size,ans;
struct node
{
int ch[26];
} t[N<<3];
string s[N];
int end[N<<3];
void insert(string ss)
{
int len=ss.length(),u=0;
for (int i=0;i<len;i++)
{
int c=ss[i]-'a';
if (!t[u].ch[c]) t[u].ch[c]=++size;
u=t[u].ch[c];
}
end[u]++;
}
void query(string ss)
{
int len=ss.length(),u=0,sum=0;
for (int i=0;i<len;i++)
{
int c=ss[i]-'a';
u=t[u].ch[c];if (end[u]) sum+=end[u];
}
ans=max(ans,sum);
}
int main()
{
freopen("link.in","r",stdin);
freopen("link.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++) cin>>s[i];
for (int i=1;i<=n;i++)
insert(s[i]);
for (int i=1;i<=n;i++) query(s[i]);
printf("%d",ans);
return 0;
}