#include using namespace std; #define ll long long #define all(x) x.begin(),x.end() #define rep(i,a,b) for(int i=a;i<=b;i++) #define each(a,x) for (auto& x: a) const char nl = '\n'; bool good(string s){ string t = s; sort(all(s)); return s == t; } void solve(){ int n; cin >> n; vector> a; while (n--){ string s; cin >> s; if (good(s)){ a.push_back({s[0] - 'a', s.back() - 'a', (int) s.size()}); } } vector dp(26); sort(all(a)); each(a,v){ int st = v[0], ed = v[1], len = v[2]; dp[ed] = max(dp[ed], dp[st] + len); rep(i,0,24) dp[i+1] = max(dp[i+1], dp[i]); } cout << dp.back() << nl; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int t = 1;// cin >> t; while (t--){ solve(); } }