#include <bits/stdc++.h>
#pragma comment(linker, "/stack:64000000")
using namespace std;
template <typename X>
inline X abs(const X &a) {
  return a < 0 ? -a : a;
}
template <typename X>
inline X sqr(const X &a) {
  return a * a;
}
const int INF = INT_MAX / 2;
const long long INF64 = LLONG_MAX / 2LL;
const long double EPS = 1E-9, PI = 3.1415926535897932384626433832795;
const int N = 3 * 10 * 1000 + 13;
int main() {
  int n;
  string a[N];
  scanf("%d\n", &n);
  for (int i = 0; i < int(n); i++) getline(cin, a[i]);
  int m = int((a[0]).size());
  int ans = 0;
  for (int i = 1; i <= m; i++) {
    bool ok = true;
    for (int j = 0; j < int(n - 1); j++) {
      if (a[j].substr(0, i) != a[j + 1].substr(0, i)) {
        ok = false;
        break;
      }
    }
    if (ok) ans = max(ans, i);
  }
  cout << ans << endl;
  return 0;
}
