#include <bits/stdc++.h>
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
void print(vector<vector<long long int>>& dp) {
  for (auto i : dp) {
    for (auto j : i) cout << max(0ll, j) << " ";
    cout << "\n";
  }
  cout << "\n";
}
signed main() {
  long long int n;
  cin >> n;
  vector<string> a(n);
  for (long long int i = 0; i < n; i++) cin >> a[i];
  vector<vector<long long int>> dp(26, vector<long long int>(26, -1e15));
  for (long long int i = 0; i < n; i++) {
    long long int f = a[i].front() - 'a';
    long long int s = a[i].back() - 'a';
    for (long long int j = 0; j < 26; j++)
      dp[j][s] = max(dp[j][s], (long long int)(dp[j][f] + a[i].size()));
    dp[f][s] = max(dp[f][s], (long long int)(a[i].size()));
  }
  long long int ans = 0;
  for (long long int i = 0; i < 26; i++) ans = max(ans, dp[i][i]);
  cout << max(0ll, ans) << "\n";
  return 0;
}
