#include <iostream>
#include <algorithm>
#include <climits>
#include <string>
#include <vector>
#include <cstdlib>
#include <cmath>

using namespace std;

#define rep(i, n)      for (int i=0; i<int(n); i++)
#define rep3(i, s, n)  for (int i=int(s); i<int(n); i++)
#define rev_rep(i, n)  for (int i=int(n)-1; i>=0; i-=1)

string s;
string t;
int dp[4010][4010];
int main() {
  while (cin >> s >> t) {
  int s_len = s.length(), t_len = t.length();
  rep(i, s_len+1) {
    rep(j, t_len+1) {
      dp[i][j] = 0;
    }
  }
  rep(i, s_len) {
    rep(j, t_len) {
      if (s[i] == t[j]) dp[i+1][j+1] = dp[i][j] + 1;
      else              dp[i+1][j+1] = 0;
    }
  }
  int ans = 0;
  rep(i, s_len+1) {
    rep (j, t_len+1) {
      ans = max(ans, dp[i][j]);
    }
  }
  cout << ans << "\n";
  }
  return 0;
}