import std.stdio;
import std.conv;
import std.string;
import std.typecons;
import std.algorithm;
import std.array;
import std.range;
import std.math;
import std.regex : regex;
import std.container;
import std.bigint;
import std.numeric;


void main()
{
  auto n = readln.chomp.to!int;
  auto f = new int[][](n, 10);
  auto p = new int[][](n, 10);

  foreach (i; 0..n) {
    f[i] = readln.chomp.split.to!(int[]);
  }
  foreach (i; 0..n) {
    p[i] = readln.chomp.split.to!(int[]);
  }

  auto m = int.min;
  
  foreach (i; 1..2^^10) {
    auto cnt = new int[](n);
    foreach (j; 0..10) {
      if (i & 1 << j) {
        foreach (k; 0..n) {
          if (f[k][j]) {
            cnt[k]++;
          }
        }
      }
    }
    int lm;
    foreach (j; 0..n) {
      lm += p[j][cnt[j]];
    }

    m = max(lm, m);
  }

  m.writeln;
}
