#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e2 + 100, maxc = 115, mod = 1e9 + 7, inf = 1e9 + 10;
long long n, f[maxn][10], c[maxn], p[maxn][11];
bool ok(long long mask) {
  bool f = 1;
  for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
      if (!f) return 0;
      f = 0;
    }
    if (((mask >> i) & 1)) f = 1;
  }
  return f;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < 10; j++) cin >> f[i][j];
  long long ans = -inf;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= 10; j++) cin >> p[i][j];
  for (long long mask = 1; mask < (1 << 10); mask++) {
    if (!ok(mask)) continue;
    memset(c, 0, sizeof c);
    for (int i = 0; i < n; i++)
      for (int j = 0; j < 10; j++)
        if (((mask >> j) & 1) && f[i][j]) c[i]++;
    long long res = 0;
    for (int i = 0; i < n; i++) res += p[i][c[i]];
    ans = max(ans, res);
  }
  cout << ans << endl;
  return 0;
}
