#include<cstdio>
using namespace std;
const long long MAXN=100100;
long long n,m;
long long a[MAXN];
long long it[4*MAXN],d[4*MAXN];
void read()
{
    long long i;
    scanf("%lld%lld",&m,&n);
    for(i=1;i<=n;i++)
    scanf("%lld",&a[i]);
}
void makeit(long long k,long long l,long long r)
{
    if(l==r)
    {
        it[k]=a[l];
        return;
    }
    makeit(k*2,l,(l+r)/2);
    makeit(k*2+1,(l+r)/2+1,r);
    it[k]=it[k*2]+it[k*2+1];
}
void update(long long k,long long l,long long r,long long l1,long long r1,long long v)
{
    //printf("%lld %lld %lld %lld\n",l,r,l1,r1);
    if(l>r1||l1>r)return;
    if(l1<=l&&r<=r1)
    {
        it[k]+=v*(r-l+1);
        d[k]+=v;
        return;
    }
    it[k*2]+=d[k]*((l+r)/2-l+1);
    it[k*2+1]+=d[k]*(r-((l+r)/2+1)+1);
    d[k*2]+=d[k];
    d[k*2+1]+=d[k];
    d[k]=0;
    update(k*2,l,(l+r)/2,l1,r1,v);
    update(k*2+1,(l+r)/2+1,r,l1,r1,v);
    it[k]=it[k*2]+it[k*2+1];
}
long long find(long long k,long long l,long long r,long long l1,long long r1)
{
    //printf("!!%lld %lld %lld %lld\n",l,r,l1,r1);
    if(l>r1||l1>r)return 0;
    if(l1<=l&&r<=r1)return it[k];
    it[k*2]+=d[k]*((l+r)/2-l+1);
    it[k*2+1]+=d[k]*(r-((l+r)/2+1)+1);
    d[k*2]+=d[k];
    d[k*2+1]+=d[k];
    d[k]=0;
    return find(k*2,l,(l+r)/2,l1,r1)+find(k*2+1,(l+r)/2+1,r,l1,r1);
}
void solve()
{
    long long i,p,x,y,v,z,t,l,r,l1,r1,s=0;
    for(i=1;i<m;i++)
    {
        scanf("%lld%lld%lld%lld%lld%lld",&p,&x,&y,&v,&z,&t);
        l=(x+s)%n+1;
        r=(y+s)%n+1;
        l1=(z+s)%n+1;
        r1=(t+s)%n+1;
        update(1,1,n,l,r,v);
        s=find(1,1,n,l1,r1);
        printf("%lld\n",s);
    }
}
void slow()
{
    long long i,j,p,x,y,v,z,t,l,r,l1,r1,s=0;
    int b[1111][1111];
    for(i=1;i<=n;i++)
    b[1][i]=a[i];
    for(i=2;i<=m;i++)
    {
        scanf("%lld%lld%lld%lld%lld%lld",&p,&x,&y,&v,&z,&t);
        l=(x+s)%n+1;
        r=(y+s)%n+1;
        l1=(z+s)%n+1;
        r1=(t+s)%n+1;
        for(j=1;j<=n;j++)
        b[i][j]=b[p][j];
        for(j=l;j<=r;j++)
        b[i][j]+=v;
        s=0;
        for(j=l1;j<=r1;j++)
        s+=b[i][j];
        printf("%lld\n",s);
    }
}
int main()
{
    read();
    if(n<=1000&&m<=1000)slow();
    else
    {
        makeit(1,1,n);
        solve();
    }
}
/*
4 4
3 6 7 5
1 2 3 1 0 1
2 1 2 6 2 2
1 0 2 8 0 3
*/
