#include <bits/stdc++.h>
using namespace std;
int n;
int f[101][11];
int p[101][11];
int flag[101];
int ans = -1e9;
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 <= 10; j++) cin >> p[i][j];
  }
  for (int mask = 0; mask < (1 << 10); mask++) {
    memset(flag, 0, sizeof(flag));
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < 10; j++) {
        if (mask & (1 << j)) {
          if (f[i][j]) flag[i]++;
        }
      }
    }
    int res = 0;
    for (int k = 0; k < n; k++) {
      res += p[k][flag[k]];
    }
    ans = max(ans, res);
  }
  cout << ans << endl;
  return 0;
}
