#include <bits/stdc++.h>
using namespace std;
int n, a[10] = {0};
int f[100][10];
long long p[100][11];
long long ans = -100000000;
void dfs(int i) {
  if (i == 10) {
    int e = 0;
    long long d = 0;
    for (int(j) = 0; (j) < (n); (j)++) {
      int x = 0;
      for (int(k) = 0; (k) < (10); (k)++) {
        if (a[k] && f[j][k]) {
          x++;
          e++;
        }
      }
      d += p[j][x];
    }
    if (!e) return;
    ans = max(ans, d);
    return;
  }
  a[i] = 0;
  dfs(i + 1);
  a[i] = 1;
  dfs(i + 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(0);
  cout << ans << endl;
  return 0;
}
