#include<iostream>
#include<string>
#include<vector>
#include<math.h>
#include<map>
#include<algorithm>
#include<set>
#define rep(i,N) for(int i=0;i<(N);i++)
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
using namespace std;
const long long MOD = 1e9 + 7;
const long long INF = 1e12;
int n;
int f[110][100];
ll p[110][100];
int main() {
	cin >> n;
	rep(i, n) {
		rep(j, 10) {
			cin >> f[i][j];
		}
	}
	rep(i, n) {
		rep(j, 11) {
			cin >> p[i][j];
		}
	}
	ll ans = -INF;
	FOR(i, 1, (1 << 10)) {
		ll sum = 0;
		rep(j, n) {
			ll cnt = 0;
			rep(k, 10) {
				if (i&(1 << k) && f[j][k])cnt++;// i&(1 << k) iのk番目のビットが立ってるか　&論理積
			}
			sum += p[j][cnt];
		}
		ans = max(ans, sum);
	}
	cout << ans << endl;
}