n=gets.to_i
f=n.times.map{gets.chop.split.map(&:to_i).select{ |e| e==1}.inject(:+)}
p_i=n.times.map{ |i| gets.chop.split.map(&:to_i)[0..f[i]]}
pmax=p_i.map{ |e| [e.index(e.max), e.max]}
if pmax.map(&:first).all?{ |e|e==0}
  p p_i.map{ |e| e[1..-1]}.flatten.max
else
  p pmax.map(&:last).inject(:+)
end
