9
lfpgbnlzyn
c
s
w
r
m
q
y
yinfblfcdhidphyfvgkxyuwomahiibbhnigdslsguhjkplibnhhrshtekwgefxeugyyyyy
 6
u
p
m
z
v
vv
 4
qe
nd
iqryhukieskfvaeettersinksrmazelxtgvartuz
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 6
nf
ysvchtjkfgsbyfzxjaykey
advqnf
wl
pi
ppppfvvmaebvhkoagppppp
 3
j
k
kkailgwqnxtdsttkkkkkkk
 4
o
yhnx
e
ennn
 10
j
dyfu
udzj
wwow
xtnw
f
c
q
o
gggg
 6
w
g
c
j
y
f
 4
r
o
w
wwwwwwwwww
 2
zxwp
ppppctfisvflhtjggg
 5
m
g
u
t
tttt
 2
n
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 3
lt
en
eeeeeeeeee
 4
vr
hp
l
llbn

7 5 541 10 10 4 4 1 21 5 9 93 21 3
#include <bits/stdc++.h>
using namespace std;
pair<char, int> pre = make_pair('0', 0);
pair<char, int> suf = make_pair('0', 0);
pair<char, int> maxlen = make_pair('0', 0);
bool cont = false;
int main() {
  cin.tie(NULL);
  cout.tie(NULL);
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<string> cv(n);
  for (int i = 0; i < n; i++) {
    cin >> cv[i];
  }
  string a = cv.back();
  cv.pop_back();
  int last = 0;
  for (int i = 0; i < a.length(); i++) {
    if (a[i] != a[last]) {
      if (last == 0) {
        pre.first = a[last];
        pre.second = i - last;
      }
      if (i - last > maxlen.second) {
        maxlen.first = a[last];
        maxlen.second = i - last;
      }
      last = i;
    } else {
      if (i == a.length() - 1) {
        if (last == 0) {
          maxlen.first = a[last];
          maxlen.second = i - last + 1;
          cont = true;
        } else {
          suf.first = a[last];
          suf.second = i - last + 1;
        }
        if (i - last + 1 > maxlen.second) {
          maxlen.first = a[last];
          maxlen.second = i - last + 1;
        }
      }
    }
  }
  while (cv.size() > 0) {
    a = cv.back();
    cv.pop_back();
    if (cont) {
      int last = 0;
      for (int i = 0; i < a.length(); i++) {
        if (maxlen.first != a[i]) {
          cont = false;
          if (i == a.length() - 1) {
            suf.first = maxlen.first;
            suf.second = maxlen.second;
          }
          if (last == -1) {
            continue;
          }
          if (last == 0) {
            pre.first = maxlen.first;
            pre.second = maxlen.second + (maxlen.second + 1) * (i - last);
          }
          if (last != -1 && maxlen.second + (maxlen.second + 1) * (i - last) >
                                maxlen.second) {
            maxlen.second = maxlen.second + (maxlen.second + 1) * (i - last);
          }
          last = -1;
        } else {
          if (i == a.length() - 1) {
            if (last == 0) {
              maxlen.second =
                  maxlen.second + (maxlen.second + 1) * (i - last + 1);
            } else {
              suf.first = a[i];
              suf.second = maxlen.second + (maxlen.second + 1) * (i - last + 1);
              if (last != -1 &&
                  maxlen.second + (maxlen.second + 1) * (i - last + 1) >
                      maxlen.second) {
                maxlen.second =
                    maxlen.second + (maxlen.second + 1) * (i - last + 1);
              }
            }
          }
        }
      }
    } else {
      if (pre.first == suf.first) {
        if (maxlen.second >= pre.second + suf.second + 1) {
          cout << maxlen.second;
          return 0;
        }
        if (a.find(pre.first) != string::npos) {
          cout << pre.second + suf.second + 1;
          return 0;
        }
      } else {
        if (pre.second > suf.second) {
          if (pre.second + 1 <= maxlen.second) {
            cout << maxlen.second;
            return 0;
          }
          if (a.find(pre.first) != string::npos) {
            cout << pre.second + 1;
            return 0;
          }
        } else {
          if (suf.second + 1 <= maxlen.second) {
            cout << maxlen.second;
            return 0;
          }
          if (a.find(suf.first) != string::npos) {
            cout << suf.second + 1;
            return 0;
          }
        }
      }
    }
  }
  cout << maxlen.second;
}
