#include <cstdio>
using namespace std;

int n, m;
const int maxn = 100004;

int a[1004][1003];
int b[maxn];

int s = 0;

int main() {
    scanf("%d %d", &n, &m);
    if(n<=1000 && m<=1000) {
        for(int i = 0; i < m; i++) {
            scanf("%d", b+i);
            a[1][i] = b[i];
        }

        int p, x, y, v, z, t;
        for(int q = 2; q <= n; q++) {
            scanf("%d %d %d %d %d %d", &p, &x, &y, &v, &z, &t);

            int l = ((x+s)%m) + 1;
            int r = ((y+s)%m) + 1;
            int i = ((z+s)%m) + 1;
            int j = ((t+s)%m) + 1;

            for(int x = 0; x < m; x++) {
                a[q][x] = a[p][x];
            }

            for(int x = l-1; x < r; x++) {
                a[q][x] += v;
            }

            /*
            for(int x = 0; x < m; x++) {
                printf("%d ", a[q][x]);
            }
            printf("\n");
            */

            s=0;
            for(int x = i-1; x < j; x++) {
                s+= a[q][x];
            }
            printf("%d\n", s);
        }
    } else {
        for(int i = 0; i < m; i++) {
            scanf("%d", b+i);
        }

        int p, x, y, v, z, t;
        for(int q = 2; q <= n; q++) {
            scanf("%d %d %d %d %d %d", &p, &x, &y, &v, &z, &t);

            if(p != q-1) return 0;

            int l = ((x+s)%m) + 1;
            int r = ((y+s)%m) + 1;
            int i = ((z+s)%m) + 1;
            int j = ((t+s)%m) + 1;

            for(int x = l-1; x < r; x++) {
                b[x] += v;
            }

            /*
            for(int x = 0; x < m; x++) {
                printf("%d ", a[q][x]);
            }
            printf("\n");
            */

            s=0;
            for(int x = i-1; x < j; x++) {
                s+= b[x];
            }
            printf("%d\n", s);
        }
    }



    return 0;
}
