#include<iostream>
#include<algorithm>

using namespace std;

int main() {
	int N;
	bool jikan[100][10];
	cin >> N;
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < 10; j++) {
			cin >> jikan[i][j];
		}
	}
	int nedan[100][11];
	for (int i = 0; i < N; i++) {
		for (int j = 0; j <= 10; j++)cin >> nedan[i][j];
	}
	int ans = -1145141919, ct = 0;
	for (int i = 1; i < (1 << 10); i++) {
		int tmp = 0;
		for (int j = 0; j < N; j++) {
			int c = 0;
			for (int k = 0; k < 10; k++) {
				if ((i >> k) & 1 && jikan[j][k])c++;
			}
			tmp += nedan[j][c];
		}
		ans = max(ans, tmp);
	}
	cout << ans << endl;
	return 0;
}