N = gets.to_i
F = Array.new(N) { gets.split.map(&:to_i) }
P = Array.new(N) { gets.split.map(&:to_i) }
max = -(10 ** 7)
(1...1024).to_a.each {|i| ret = 0; N.times {|n| cnt = 0; 10.times {|j| cnt += 1 if F[n][j] == 1 && i & 2 ** j > 0 }; ret += P[n][cnt] }; max = ret > max ? ret : max }
puts max