#include <bits/stdc++.h>
int main() {
  int i, k;
  int N;
  scanf("%d", &N);
  int F[N][10], P[N][10];
  int count[N], BIG[N], ans;
  int flag = 0;
  for (i = 0; i < N; i++) {
    for (k = 1; k < 11; k++) {
      scanf("%d", &F[i][k]);
    }
  }
  for (i = 0; i < N; i++) {
    for (k = 0; k < 11; k++) {
      scanf("%d", &P[i][k]);
    }
  }
  for (k = 0; k < N; k++) {
    count[k] = 0;
    for (i = 1; i < 11; i++) {
      if (F[k][i] == 1) {
        count[k]++;
      }
    }
  }
  for (k = 0; k < N; k++) {
    BIG[k] = P[k][1];
    for (i = 2; i <= count[k]; i++) {
      if (BIG[k] < P[k][i]) {
        BIG[k] = P[k][i];
        flag = 1;
      }
    }
    if (BIG[k] > P[k][0]) {
      ans += BIG[k];
    } else {
      ans += P[k][0];
    }
  }
  if (flag == 0) {
    ans = BIG[0];
    for (i = 1; i < N; i++) {
      if (ans < BIG[i]) {
        ans = BIG[i];
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}
