N = int(input())
F = [list(map(int,input().split())) for i in range(N)]
P = [list(map(int,input().split())) for i in range(N)]

ans = -float('inf')
for k in range(1,1<<10): #1000個の空き状態について調べる2^10
  tmp = 0
  for fs,ps in zip(F,P): #お店の空きと利益
    cnt = 0

    for b in range(10):
      if (k>>b)&1 and fs[b]: #空き情報が一致していたら（kのb番目が1なら=お店が空いていれば）
        cnt += 1             #カウント1
      tmp = ps[cnt]          #


  ans = max(tmp, ans)
print(ans)