#include // #include // using namespace atcoder; #define _overload3(_1,_2,_3,name,...) name #define _rep(i,n) repi(i,0,n) #define repi(i,a,b) for(int i=int(a);i=int(0);--i) #define fore(i,a) for(auto &i:a) #define all(x) x.begin(),x.end() #define sz(x) ((int)(x).size()) #define bp(x) (__builtin_popcount((long long)(x))) #define pb push_back #define eb emplace_back #define mp make_pair #define V vector #define P pair #define TP tuple #define F first #define S second templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b>n; V x; rep(i,n){ string s,t;cin>>s; t=s; sort(all(t)); if(s==t){ x.pb(s); } } sort(all(x)); V> dp(2,V(30)); int now=0; rep(i,sz(x)){ now=1-now; int m=x[i].back()-'a'; dp[now]=dp[!now]; rep(j,x[i].front()-'a'+1){ chmax(dp[now][m],dp[!now][j]+sz(x[i])); } } ll ans=0; rep(i,30){ chmax(ans,dp[now][i]); } cout<