from collections import deque ans=1<<60 n=int(input()) a=[list(map(int,input().split())) for i in range(n)] b=list(map(int,input().split())) e=[sum(a[i]) for i in range(n)] for i in range(1<>l&1 and a[j][l]: d[j]+=1;c[j][l]=1 if d[j]==e[j]: f.append(j) t=0 while f: q=f.pop() t+=1 for j in range(n): if a[j][q] and not c[j][q]: c[j][q]=1 d[j]+=1 if d[j]==e[j]: f.append(j) if t==n: t=0 for j in range(n): t+=(i>>j&1)*b[j] ans=min(ans,t) print(ans)