someha@DESKTOP-UG27FVO:~/hoge$ cat a.cpp
#include <bits/stdc++.h>
using namespace std;

int n;
int f[110][10];
int c[110][10];

int cnt[110] = {};

int dfs(int i){
    if(i == 10){
        int ans = 0;
        int zero = 0;
        for(int j = 0;j < n;j++){
            if(cnt[j] > 0){
                zero++;
            }
        }
        if(zero == 0) return INT_MIN;


        for(int j = 0;j < n;j++){
            ans += c[j][cnt[j]];
        }
        return ans;
    }

    int a1 = dfs(i+1);

    for(int j = 0;j < n;j++){
        cnt[j] += f[j][i];
    }

    a1 = max(a1, dfs(i+1));

    for(int j = 0;j < n;j++){
        cnt[j] -= f[j][i];
    }

    return a1;
}



int main(){
    cin >> n;
    for(int i = 0;i < n;i++){
        for(int j = 0;j < 10;j++){
            cin >> f[i][j];
        }
    }
    for(int i = 0;i < n;i++){
        for(int j = 0;j < 11;j++){
            cin >> c[i][j];
        }
    }

    cout << dfs(0) << endl;

    return 0;
}
