#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;
}