#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int pre[100005];
int dp[100005];
int main()
{
char a[100005],b[100005];
while(scanf("%s %s",a,b)!=EOF){
int n=strlen(a);
int m=strlen(b);
memset(dp,0,sizeof(dp));
memset(pre,0,sizeof(pre));
int max=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i]==b[j]){
if(i>0&&j>0){
dp[j]=pre[j-1]+1;
}
else{
dp[j]=1;
}
}
else{
dp[j]=0;
}
if(max<dp[j]){
max=dp[j];
}
}
for(int j=0;j<m;j++){
// cout<<dp[j]<<" ";
pre[j]=dp[j];
}
// cout<<endl;
}
cout<<max<<endl;
}
return 0;
}