#include <bits/stdc++.h>
char string[500010][11];
int dp[26][26];
int max(int a, int b) {
  if (a > b)
    return a;
  else
    return b;
}
int main() {
  int i;
  int n;
  int start;
  int end;
  int len;
  int j;
  int ans = 0;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%s", string[i]);
  for (i = 0; i < n; i++) {
    len = strlen(string[i]);
    start = string[i][0] - 'a';
    end = string[i][len - 1] - 'a';
    for (j = 0; j < 26; j++) {
      if (dp[j][start] != 0) dp[j][end] = max(dp[j][end], dp[j][start] + len);
    }
    dp[start][end] = max(dp[start][end], len);
  }
  for (j = 0; j < 26; j++) {
    if (dp[j][j] > ans) {
      ans = dp[j][j];
    }
  }
  printf("%d\n", ans);
  return 0;
}
