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


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

ans = -(10**7)

"""
自分の店が開く時間帯の組み合わせを用意する.itertools?
その組み合わせの時間帯に営業している店を調べる。for文
店ごとにciをカウントしていく.for文
最後にansに店ごとのPを加算していき、マックスの値を調べる。ans = max(ans,~)
"""
#開いてる時間帯を1、開いてない時間帯を0とすると組み合わせは2**10通り
for i in range(2**10):
    check = [0]*10
    tmp = 0
    for j in range(10):
        if (i>>j)&1: #10個の時間帯で開いてる時間帯を探す
            check[j] = 1
    if any(check)==False:
        continue
    for k in range(N):
        cnt = 0 #同時間帯に営業している数
        for l in range(10):
            if F[k][l] == 1 and check[l] == 1:
                cnt += 1
        tmp += P[k][cnt]
    ans = max(ans,tmp)

print(ans)