/*  "Sahand Alitanloo"  */
#include <bits/stdc++.h>
#define F first
#define S second
#define fast() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define per(i) cout<<fixed<<setprecision(i)
#define pb push_back
#define all(v) begin(v),end(v)
#define endl '\n'
using namespace std;
typedef pair<int,int> pii;
typedef long double ld;
typedef long long ll;
const int MAX_N = 1e5+10;
const ll mod = 1e9+7;
const ll INF = 1e9;
inline ll bpow(ll t,ll n){ll ans=1;while(n>0){if(n&1)ans=(ans*t)%mod;t=(t*t)%mod,n>>=1;}return ans;}
/*
ll fact[MAX_N],ifact[MAX_N];
inline ll c(ll n,ll k){if(k>n||k<0)return 0;return (fact[n]*ifact[k]%mod*ifact[n-k])%mod;}
inline void get_fact(){fact[0]=1;ifact[0]=1;for(ll i=1;i<MAX_N;i++)fact[i]=(fact[i-1]*i)%mod,ifact[i]=bpow(fact[i],mod-2);}
*/

#define int ll
int c[1000][1000];
int p[1000][1000];
main(){
    fast();per(0);
    //get_fact();
	int n;cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=0;j<10;j++)
			cin>>c[i][j];
	for(int i=1;i<=n;i++)
		for(int j=0;j<=10;j++)
			cin>>p[i][j];
	int ans=-1;
	for(int i=1;i<(1<<10);i++){
		int cc[]={0,0,0,0,0,0,0,0,0,0};
		for(int j=0;j<10;j++)
			if(i>>j&1){
				for(int k=1;k<=n;k++)
					if(c[k][j]==1)
						cc[k]++;
			}
		int sum=0;
		for(int k=1;k<=n;k++)
			sum+=p[k][cc[k]];
		if(ans==-1)
			ans=sum;
		ans=max(ans,sum);

	}
	cout<<ans;
}