#include <bits/stdc++.h>
using namespace std;
int main()
{
string str1,str2;
cin>>str1>>str2;
int m = str1.size(),n = str2.size();
// dp[i][j] str1前i个字符和str2前j个字符的最长公共子串长度
int dp[m+1][n+1];
int maxlen = 0;
for(int i=0; i<=m; ++i) dp[i][0] = 0;
for(int j=0; j<=n; ++j) dp[0][j] = 0;
for(int i=1; i<=m; ++i)for(int j=1; j<=n; ++j)
{
if(str1[i-1] == str2[j-1])//这个相同
dp[i][j] = dp[i-1][j-1] + 1;//上个加一
else
dp[i][j] = 0;//不同就清零
if(dp[i][j] > maxlen)
maxlen = dp[i][j];
}
cout<<maxlen;
}