//Author:Zealous_YH / Cream_H
//Su Chanzi & Xiao Bao
//Hey Left
//Just enjoy the loneliness
//Open a personal party always stay
#include <bits/stdc++.h>
#define ET return 0
#define fi first
#define se second
#define mp make_pair
#define pb emplace_back
#define ll long long
#define ull unsigned long long
#define inf INT_MAX
#define uinf INT_MIN
#define pii pair<int,int>
#define pll pair<ll,ll>
#define debug puts("--------Chery AK IOI--------");
#define Yes cout<<"Yes"<<endl;
#define No cout<<"No"<<endl;
#define pt puts("")
#define fr1(i,a,b) for(int i=a;i<=b;i++)
#define fr2(i,a,b) for(int i=a;i>=b;i--)
#define fv(i,p) for(int i=0;i<p.size();i++)
#define ld long double
#define il inline
#define ptc putchar
using namespace std;
const int N=1e4+10;
namespace Cream_H{
int lowbit(int x){
return x&-x;
}
template <typename T>
inline void read(T &x){
T s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-'){
w=-1;
}
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
x=s*w;
}
template <typename T>
inline void write(T x){
if(x<0){
putchar('-');
x=-x;
}
if(x>9){
write(x/10);
}
putchar(x%10+'0');
}
}
using namespace Cream_H;
int n;
string s,t;
int rk[N<<1],oldrk[N<<1];
int wh[N];
int sa[N];
bool bol[6];
int height[N];
int w,len;
bool cmp(int x,int y){
if(rk[x]==rk[y]){
return rk[x+w]<rk[y+w];
}
return rk[x]<rk[y];
}
void Height(){
int k=0;
fr1(i,1,len){
if(rk[i]==1){
continue;
}
if(k){
k--;
}
while(i+k<=len&&sa[rk[i]-1]+k<=len&&s[i+k]==s[sa[rk[i]-1]+k]){
k++;
}
// cout<<i<<","<<rk[i]<<":"<<k<<endl;
height[rk[i]]=k;
}
}
bool check(int x){
fr1(i,1,n){
bol[i]=0;
}
fr1(i,1,len+1){
if(height[i]>=x){
bol[wh[sa[i]]]=1;
}
else{
bool f=1;
fr1(j,1,n){
if(!bol[j]){
f=0;
break;
}
}
fr1(j,1,n){
bol[j]=0;
}
// cout<<x<<":"<<i<<endl;
// fr1(j,1,n){
// cout<<bol[j]<<" ";
// }
// cout<<endl;
if(f){
return 1;
}
bol[wh[sa[i]]]=1;
}
}
return 0;
}
int main(){
cin>>n;
s='@';
fr1(i,1,n){
cin>>t;
wh[s.length()]++;
s+=t;
}
len=s.length()-1;
fr1(i,1,len){
wh[i]+=wh[i-1];
}
fr1(i,1,len){
rk[i]=s[i];
sa[i]=i;
}
for(w=1;w<len;w*=2){
sort(sa+1,sa+len+1,cmp);
fr1(i,1,len){
oldrk[i]=rk[i];
}
int tot=0;
fr1(i,1,len){
if(oldrk[sa[i]]==oldrk[sa[i-1]]&&oldrk[sa[i]+w]==oldrk[sa[i-1]+w]){
rk[sa[i]]=rk[sa[i-1]];
}
else{
tot++;
rk[sa[i]]=tot;
}
}
}
Height();
// cout<<s<<endl;
// fr1(i,1,len){
// cout<<sa[i]<<" ";
// }
// cout<<endl;
// fr1(i,1,len){
// cout<<rk[i]<<" ";
// }
// cout<<endl;
// fr1(i,1,len){
// cout<<height[i]<<" ";
// }
// cout<<endl;
int l=1,r=len;
int ans=0;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid)){
l=mid+1;
ans=mid;
}
else{
r=mid-1;
}
}
cout<<ans<<endl;
ET;
}
//Teens-in-Times
//HJL 2004.06.15
//YHX 2004.08.16
//Everything For Ji, Lin, Hao, Shun, Hang and You.
未知原因,LOJ 成功 AC,洛谷 WA #2。