#include <bits/stdc++.h>
using namespace std;
char s[20];
int dp[26][26];
void checkmax(int &a, int b) { a = max(a, b); }
int main() {
  int n;
  while (~scanf("%d", &n)) {
    memset(dp, -1, sizeof(dp));
    for (int i = 0; i < n; i++) {
      scanf("%s", s);
      int len = strlen(s);
      for (int j = 0; j < 26; j++) {
        if (dp[j][s[0] - 'a'] == -1) continue;
        checkmax(dp[j][s[len - 1] - 'a'], dp[j][s[0] - 'a'] + len);
      }
      checkmax(dp[s[0] - 'a'][s[len - 1] - 'a'], len);
    }
    int ans = 0;
    for (int i = 0; i < 26; i++) {
      ans = max(ans, dp[i][i]);
    }
    printf("%d\n", ans);
  }
  return 0;
}
