#include <bits/stdc++.h>
using namespace std;
char str[100];
int L;
bool ok(int n) {
  if (n == 0) return true;
  set<string> S;
  for (int i = 0; i + n <= L; i++) {
    string temp(str + i, str + i + n);
    if (!S.insert(temp).second) return true;
  }
  return false;
}
int main() {
  scanf("%s", str);
  L = strlen(str);
  int low = 0, high = L;
  while (high - low > 1) {
    int mid = (low + high) / 2;
    if (ok(mid)) {
      low = mid;
    } else {
      high = mid;
    }
  }
  if (ok(high)) {
    printf("%d\n", high);
  } else {
    printf("%d\n", low);
  }
  return 0;
}
