#include <iostream>
#include <vector>
#include <utility>

using namespace std;

vector <pair<long long,long long> > w[200005],s[200005];
int i,n,m,x,y,z,t,v,p,q,l,r,j,S;

long long caut(vector <pair<long long,long long> > v,int x)
{
    int p,u,m,n=v.size()-1;
    if (v.size()==0)
        return 0;
    p=0;u=n;
    while (p<=u)
    {
        m=(p+u)/2;
        if (x>=v[m].second)
            u=m-1;
        else p=m+1;
    }
    if ((p!=n) && (v[n].second==q))
        return v[n].first;
    return v[p].first;
}

void update(long long d,long long l,long long x,long long y,long long z,long long n,long long p,long long q)
{
    long long m;
    if ((x<=p) && (q<=y))
    {
        s[n].push_back(make_pair(caut(s[n],d)+z*(q-p+1),l));
        w[n].push_back(make_pair(caut(w[n],d)+z,l));
    }
    else
    {
        m=(p+q)/2;
        if (m+1<=y)
            update(d,l,x,y,z,n*2,m+1,q);
        if (m>=x)
            update(d,l,x,y,z,n*2+1,p,m);
        s[n].push_back(make_pair(caut(s[2*n],d)+caut(s[2*n+1],d),l));
    }
}


void update0(long long x,long long y,long long z,long long n,long long p,long long q)
{
    long long m;
    if (s[n].size()==0)
        s[n].push_back(make_pair(0,1));
    if ((x<=p) && (q<=y))
    {
        s[n][0].first+=z*(q-p+1);
        if (w[n].size()==0)
            w[n].push_back(make_pair(0,1));
        w[n][0].first+=z;
    }
    else
    {
        m=(p+q)/2;
        if (m+1<=y)
            update0(x,y,z,n*2,m+1,q);
        if (m>=x)
            update0(x,y,z,n*2+1,p,m);
        s[n][0].first=0;
        if (s[2*n].size()!=0)
            s[n][0].first+=s[2*n][0].first;
        if (s[2*n+1].size()!=0)
            s[n][0].first+=s[2*n+1][0].first;
    }
}

long long query(long long l,long long x,long long y,long long z,long long n,long long p, long long q)
{
    long long m,ff,r=0;
    if ((x<=p) && (q<=y))
    {
        return caut(s[n],l)+z*(q-p+1);
    }
    else
    {
        m=(p+q)/2;
        ff=caut(w[n],l);
        if (m+1<=y)
            r+=query(l,x,y,z+ff,n*2,m+1,q);
        if (m>=x)
            r+=query(l,x,y,z+ff,n*2+1,p,m);
        return r;
    }
}

int main()
{
    cin >> n >> m;
    for (i=1;i<=m;i++)
    {
        cin >> x;
        update0(i,i,x,1,1,m);
    }
    S=0;
    for (q=2;q<=n;q++)
    {
        cin >> p >> x >> y >> v >> z >> t;
        l=(x+S)%m+1;
        r=(y+S)%m+1;
        i=(z+S)%m+1;
        j=(t+S)%m+1;
        update(p,q,l,r,v,1,1,m);
        S=query(p,i,j,0,1,1,m);
        cout << S << "\n";
    }
    
    return 0;
}
