#include<bits/stdc++.h>
using namespace std;
int f[110][15],p[110][15];
int sum=-INT_MAX;
int n;
void dfs(string s)
{
	if(s.size()==10)
	{
		if(s.find('1')==string::npos)
			return;
		int cnt=0;
		for(int i=0;i<n;i++)
		{
			int ans=0;
			for(int j=0;j<10;j++)
			{
				if(f[i][j] && s[j]=='1')
				{
					ans++;
				}
			}
			cnt+=p[i][ans];
		}
		sum=max(cnt,sum);
		return;
	}
	dfs(s+'0');
	dfs(s+'1');
}
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<10;j++)
		{
			cin>>f[i][j];
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<11;j++)
		{
			cin>>p[i][j];
		}
	}
	dfs("");
	cout<<sum<<'\n';
	return 0;
}