N = gets.to_i
a = ?a.ord
S = Array.new(N) { gets.chomp.each_char.map { |c| c.ord - a } }

def good?(s)
    c = s[0]
    s.all? { |d|
        x = c <= d
        c = d
        x
    }
end

S.filter! { |s| good?(s) }

S.map! { |s| [s[0], s[-1], s.size] }

S.sort!

ans = 0

A = Hash.new(0)

S.each do |(f, l, s)|
    x = A[f]
    y = x + s
    (l ... 26).each do |i|
        A[i] = y if y > A[i]
    end
end

puts A.values.max || 0