#include <bits/stdc++.h>
int main(void) {
  short N;
  short F[100][10];
  long P[100][10];
  long i, k;
  short j;
  long count, tmp_ans, ans;
  scanf("%hd", &N);
  for (int i = 0; i < (N); i++) {
    for (int j = 0; j < (10); j++) {
      scanf("%hd", &F[i][j]);
    }
  }
  for (int i = 0; i < (N); i++) {
    for (int j = 0; j < (11); j++) {
      scanf("%ld", &P[i][j]);
    }
  }
  count = 0;
  tmp_ans = 0;
  ans = -100000;
  for (int i = (1); i < (1 << 10); i++) {
    for (int k = 0; k < (N); k++) {
      for (int j = 0; j < (10); j++) {
        if ((F[k][j]) & (i >> j)) count += 1;
      }
      tmp_ans += P[k][count];
      count = 0;
    }
    if (ans < tmp_ans) {
      ans = tmp_ans;
    }
    tmp_ans = 0;
  }
  printf("%ld\n", ans);
  return 0;
}
