#include <cstdio>
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
#include <map>

using namespace std;


int main() {
    int n;
    scanf(" %d", &n);
    
    vector< vector <vector < int > > > f;
    vector< vector < int > > p;
    int val;

    f.resize(n);
    p.resize(n);

    for (int i=0; i<n; i++) {
        f[i].resize(5);
        p[i].resize(11);
        for (int j=0; j<5; j++) {
            f[i][j].resize(2);
        }
    }

    for (int i=0; i<n; i++) {
        for (int j=0; j<5; j++) {
            for (int k=0; k<2; k++) {
                scanf(" %d", &val);
                f[i][j][k] = val;
            }
        }
    }

    for (int i=0; i<n; i++) {
        for (int j=0; j<11; j++) {
            scanf(" %d", &val);
            p[i][j] = val;
        }
    }

    int min = 0;

/*
  for (int i=0; i<n; i++) {
        for (int j=0; j<5; j++) {
            for (int k=0; k<2; k++) {
                printf("%d ", f[i][j][k]);
            }
        }
        printf("\n");
    }

       for (int i=0; i<n; i++) {
        for (int j=0; j<11; j++) {
            printf("%d ", p[i][j]);
        }
        printf("\n");
    }
*/
    int a[10];
    int max_res = n * (-10000000);
    
    for (int a0 = 0; a0 < 2; a0++) {
        for (int a1 = 0; a1 < 2; a1++) {
            for (int a2 = 0; a2 < 2; a2++) {
                for (int a3 = 0; a3 < 2; a3++) {
                    for (int a4 = 0; a4 < 2; a4++) {
                        for (int a5 = 0; a5 < 2; a5++) {
                            for (int a6 = 0; a6 < 2; a6++) {
                                for (int a7 = 0; a7 < 2; a7++) {
                                    for (int a8 = 0; a8 < 2; a8++) {
                                        for (int a9 = 0; a9 < 2; a9++) {
                                            a[0] = a0; a[1] = a1; a[2] = a2; a[3] = a3; a[4] = a4;
                                            a[5] = a5; a[6] = a6; a[7] = a7; a[8] = a8; a[9] = a9;
                                            if ((a0 == 0)&&(a1 == 0)&&(a2 == 0)&&(a3 == 0)&&(a4 == 0)&&(a5 == 0)&&(a6 == 0)&&(a7 == 0)&&(a8 == 0)&&(a9 == 0)) {
                                                continue;
                                            }
                                            
                                            // estimate

                                            vector< int > c(n, 0);
                                            for (int i=0; i<n; i++) {
                                                for (int j=0; j<5; j++) {
                                                    for (int k=0; k<2; k++) {
                                                        if (a[j*2 +k] == 1) {
                                                            if(f[i][j][k] == 1) {
                                                                c[i]++;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            val = 0;
                                            for (int i=0; i<n; i++) {
                                                val += p[i][c[i]];
                                            }
                                            if (val >= max_res) {
                                                max_res = val;
                                            }
                                        }   
                                    }   
                                }
                            }
                        }
                    }
                }
            }
        }    
    }

    printf("%d\n", max_res);
}

Measured memory_bytes: 256