N = gets.to_i S = N.times.map { gets.chomp } T = S.select { |s| s.chars.each_cons(2).all? { |a, b| a <= b } }.sort dp = Hash.new(0) T.each do |t| i = t[0] j = t[-1] ('a'..i).to_a.reverse_each do |c| len = dp[c] + t.size if dp[j] < len dp[j] = len end end end values = dp.values if values.empty? puts 0 else puts values.max end