#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> l_l;
typedef pair<int, int> i_i;
template<class T>
inline bool chmax(T &a, T b) {
    if(a < b) {
        a = b;
        return true;
    }
    return false;
}

template<class T>
inline bool chmin(T &a, T b) {
    if(a > b) {
        a = b;
        return true;
    }
    return false;
}

const long double EPS = 1e-10;
const long long INF = 1e18;
const long double PI = acos(-1.0L);
//const ll mod = 1000000007;
ll N;
ll ans;
const ll T = 55440;
ll a[T];
ll A[13], B[17], C[19], D[23];
int main() {
    while(cin >> N) {
        if(N == 0) break;
        for(int i = 0; i < T; i++) {
            a[i] = 0;
        }
        for(int i = 0; i < 13; i++) A[i] = 0;
        for(int i = 0; i < 17; i++) B[i] = 0;
        for(int i = 0; i < 19; i++) C[i] = 0;
        for(int i = 0; i < 23; i++) D[i] = 0;
        ans = 0;
        for(int i = 0; i < N; i++) {
            ll d;
            cin >> d;
            ll t;
            cin >> t;
            vector<ll> q(d);
            for(int j = 0; j < d; j++) cin >> q[j];
            if(d == 13 or d == 17 or d == 19 or d == 23) {
                for(int j = 0; j < d; j++) {
                    if(d == 13) A[j] += q[(j+t)%d];
                    if(d == 17) B[j] += q[(j+t)%d];
                    if(d == 19) C[j] += q[(j+t)%d];
                    if(d == 23) D[j] += q[(j+t)%d];
                }
                continue;
            }
            for(int j = 0; j < T; j++) {
                a[j] += q[(t + j) % d];
            }
        }
        ll maxi = 0;
        for(auto tmp : a) {
            chmax(maxi, tmp);
        }
        ans += maxi;
        maxi = 0;
        for(int i = 0; i < 13; i++) chmax(maxi, A[i]);
        ans += maxi;
        maxi = 0;
        for(int i = 0; i < 17; i++) chmax(maxi, B[i]);
        ans += maxi;
        maxi = 0;
        for(int i = 0; i < 19; i++) chmax(maxi, C[i]);
        ans += maxi;
        maxi = 0;
        for(int i = 0; i < 23; i++) chmax(maxi, D[i]);
        ans += maxi;
        cout << ans << endl;
    }
    return 0;
}
