#include <bits/stdc++.h>
using namespace std;
int opt[26][26];
char buf[20];
int n;
int main() {
  int n;
  while (scanf("%d", &n) != EOF) {
    memset(opt, 0, sizeof(opt));
    for (int i = 0; i < n; i++) {
      scanf("%s", buf);
      int len = strlen(buf);
      int fst = ((buf[0]) - 'a');
      int lst = ((buf[len - 1]) - 'a');
      for (int j = 0; j < 26; j++) {
        if (opt[j][fst] != 0 || j == fst) {
          opt[j][lst] = max(opt[j][lst], opt[j][fst] + len);
        }
      }
    }
    int ret = 0;
    for (int i = 0; i < 26; i++) {
      ret = max(ret, opt[i][i]);
    }
    printf("%d\n", ret);
  }
  return 0;
}
