#include <bits/stdc++.h>
int m = -10000000;
int a[1000][1000];
int b[1000][1000];
int f[10000];
int n;
void max(int d[]) {
  int i, j, s = 0, g = 0;
  int e[100];
  for (i = 0; i < 10; i++) {
    if (d[i] >= 2) return;
    g *= 2;
    g += d[i];
    e[i] = 0;
  }
  if (f[g] != 0 && g != 0) return;
  f[g]++;
  for (i = 0; i < 10; i++) {
    for (j = 0; j < n; j++) {
      if (d[i] == 1 && a[j][i] == 1) {
        e[j]++;
      }
    }
  }
  if (g != 0) {
    for (i = 0; i < n; i++) s += b[i][e[i]];
    if (s > m) m = s;
  }
  d[0]++;
  max(d);
  d[0]--;
  d[1]++;
  max(d);
  d[1]--;
  d[2]++;
  max(d);
  d[2]--;
  d[3]++;
  max(d);
  d[3]--;
  d[4]++;
  max(d);
  d[4]--;
  d[5]++;
  max(d);
  d[5]--;
  d[6]++;
  max(d);
  d[6]--;
  d[7]++;
  max(d);
  d[7]--;
  d[8]++;
  max(d);
  d[8]--;
  d[9]++;
  max(d);
  d[9]--;
}
int main(void) {
  int i, j;
  int d[100];
  scanf("%d", &n);
  for (i = 0; i < 2000; i++) f[i] = 0;
  for (i = 0; i < n; i++) {
    for (j = 0; j < 10; j++) {
      scanf("%d", &a[i][j]);
    }
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < 11; j++) {
      scanf("%d", &b[i][j]);
    }
  }
  for (i = 0; i < 10; i++) d[i] = 0;
  max(d);
  printf("%d\n", m);
  return 0;
}
