#include<stdio.h>
char num[50];
int ans;
struct tree
{
int cnt;
tree *next[15];
tree()
{
cnt=0;
for(int i=0;i<15;i++)
{
next[i]=NULL;
}
}
}*root;
int max(int a,int b)
{
return a>b?a:b;
}
void set(char *s)
{
tree *item=root;
for(int i=0;s[i];i++)
{
int j=s[i]-'0';
if(item->next[j]==NULL)
{
item->next[j]=new tree;
}
item=item->next[j];
}
item->cnt++;
ans=max(ans,item->cnt);
}
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
ans=0;
root=new tree;
while(n--)
{
scanf("%s",num);
for(i=0;num[i]=='0';i++);
set(num+i);
}
printf("%d\n",ans);
}
}