N = int(input()) S = [] for _ in range(N): s = input() good = True for i in range(len(s) - 1): if s[i] > s[i + 1]: good = False break if good: S.append(s) S.sort(key=lambda s: s[0]) S.sort(key=lambda s: s[-1]) dp = [0] * 26 for s in S: l = dp[ord(s[0]) - 97] + len(s) for j in range(ord(s[-1]) - 97, 26): dp[j] = max(dp[j], l) print(dp[-1])