#include <stdio.h>
#include <iostream>

using namespace std;

int x[100010];
long long mat[1111][1111];

int main() {
    freopen("data.in", "r", stdin);
    freopen("data.out", "w", stdout);

    int n, m;
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= m; ++i)
        scanf("%d", &x[i]);

    if (n <= 1000 && m <= 1000) {
        for (int i = 1; i <= m; ++i)
            mat[1][i] = x[i];
        long long s = 0;
        for (int i = 2; i <= n; ++i) {
            int where, st, dr, qst, qdr, val;
            scanf("%d%d%d%d%d%d", &where, &st, &dr, &val, &qst, &qdr);
            st = (st + s) % m + 1;
            dr = (dr + s) % m + 1;
            qst = (qst + s) % m + 1;
            qdr =  (qdr + s) % m + 1;
            for (int j = 1; j <= m; ++j)
                mat[i][j] = mat[where][j];
            for (int j = st; j <= dr; ++j)
                mat[i][j] += val;
            s = 0;
            for (int j = qst; j <= qdr; ++j)
                s += mat[i][j];
            printf("%lld\n", s);
        }
        return 0;
    }

    return 0;
}
