#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int n,m,k,kp,s=0,p,x,y,v,z,t,L,R,l,r,st1[1024][1024],a[300300];
int main()
{
    int i,j;
    //  Subtask #1
    /*
    if(n<=1000&&m<=1000)
    {*/
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;++i){scanf("%d",&st1[1][i]);}
    for(i=2;i<=n;++i)
    {
        scanf("%d%d%d%d%d%d",&p,&x,&y,&v,&z,&t);
        L=(x+s)%m+1;R=(y+s)%m+1;
        l=(z+s)%m+1;r=(t+s)%m+1;
        s=0;
        for(j=1;j<=m;++j)
        {
            st1[i][j]=st1[p][j];
            if(j>=L&&j<=R){st1[i][j]+=v;}
            if(j>=l&&j<=r){s+=st1[i][j];}
        }
        printf("%d\n",s);
    }
    return 0;
    /*}
    //*/
    //  Subtask #2
    /*
    scanf("%d%d",&n,&m);
    k=m-1;while(k){k/=2;++kp;}k=pow(2,kp);
    for(i=k;i<k+m;++i)scanf("%d",&a[i]);
    for(i=0;i<n;++i)
    {
        scanf("%d%d%d%d%d%d",&p,&x,&y,&v,&z,&t);
        L=(x+s)%m;R=(y+s)%m;
        l=(z+s)%m;r=(t+s)%m;
        s=0;
        while(R>1)
        {
            if(R%2){R/=2;if(R==1){a[R]+=v;}}
            else{a[R]+=v;R/=2;if((R^(R-1))<R){--R;}else{break;}}
        }
        while(L>1)
        {
            if(L%2){L/=2;if(L==1){a[L]-=v;}}
            else{a[L]-=v;L/=2;if((L^(L-1))<L){--L;}else{break;}}
        }
    }
    return 0;
    */
}
