#include <bits/stdc++.h>
int main() {
  int i, j, k, l;
  int n;
  int f[105][15];
  int p[105][15];
  int t[15];
  int s[105];
  int point;
  for (i = 0; i < 100; i++) {
    s[i] = 0;
  }
  int max;
  for (i = 0; i < 10; i++) {
    t[i] = 0;
  }
  t[0] = 1;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    for (j = 0; j < 10; j++) {
      scanf("%d", &f[i][j]);
    }
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < 10; j++) {
      scanf("%d", &p[i][j]);
    }
  }
  for (i = 0; i < 1023; i++) {
    for (k = 0; k < 10; k++) {
      if (t[k] >= 2) {
        t[k] = 0;
        t[k + 1]++;
      }
    }
    for (j = 0; j < n; j++) {
      for (l = 0; l < 10; l++) {
        if (f[j][l] == 1 && t[l] == 1) {
          s[j]++;
        }
      }
    }
    for (j = 0; j < n; j++) {
      point = point + p[j][s[j]];
    }
    if (i == 0) {
      max = point;
    } else if (max < point) {
      max = point;
    }
    for (j = 0; j < n; j++) {
      s[j] = 0;
    }
    t[0]++;
    point = 0;
  }
  printf("%d", max);
  return 0;
}
