#include <fstream>
#include <iostream>

using namespace std;

ifstream fin ("data.in");
ofstream fout ("data.out");

struct data {
    int x;
    int st;
    int dr;
    int val;
}t[100010];

int n,m,L,R,S,D,i,p,x,y,z,T,v,u;

long long s;

long long a[100010];
    

int main () {
    
    cin>>n>>m;
    for (i=1;i<=m;i++) {
        cin>>a[i];
        a[i]+=a[i-1];
    }
    for (i=2;i<=n;i++) {
        cin>>p>>x>>y>>v>>z>>T;
        L=((x+s)%m)+1;
        R=((y+s)%m)+1;
        S=((z+s)%m)+1;
        D=((T+s)%m)+1;
        t[i].x=p;
        t[i].st=L;
        t[i].dr=R;
        t[i].val=v;
        s=0;
        for (u=i;u!=1;u=t[u].x){
            if (t[u].st>D || t[u].dr<S)
                continue;
            if (t[u].dr>=S&&t[u].st<S){
                s+=1LL*(t[u].dr-S+1)*t[u].val;
                continue;
            }
            if (t[u].st>=S && t[u].dr<=D) {
                s+=1LL*(t[u].dr-t[u].st+1)*t[u].val;
                continue;
            }
            s+=(D-t[u].st+1)*t[u].val;
        }
        s+=(a[D]-a[S-1]);
        cout<<s<<"\n";
    }
    
    return 0;
}
