n = int(input()) strings = [input().strip() for _ in range(n)] valid = [] for s in strings: if len(s) == 0: continue is_sorted = True prev = s[0] for c in s[1:]: if c < prev: is_sorted = False break prev = c if is_sorted: valid.append((s[0], s[-1], len(s))) dp = [0] * 26 max_dp = [0] * 26 for s_start, s_end, len_s in valid: s_start_idx = ord(s_start) - ord('a') s_end_idx = ord(s_end) - ord('a') max_prev = max_dp[s_start_idx] new_length = max_prev + len_s if new_length > dp[s_end_idx]: dp[s_end_idx] = new_length # Update max_dp current_max = 0 for i in range(26): current_max = max(current_max, dp[i]) max_dp[i] = current_max print(max(dp))