#include <cstdio>
#include <iostream>

using namespace std;

#define MAXN 1000
#define MAXM 1000

int cap[MAXN][MAXM];
int N,M;

void init()
{
	scanf("%d %d", &N, &M);
	
	for(int i=0; i<M; i++) scanf("%d", &cap[0][i]);
}

int p[MAXN];
long long S;

void solve()
{
	S=0;
	int X,Y,V,Z,T;
	int L,R,I,J;
	
	for(int i=1; i<N; i++)
	{
		scanf("%d %d %d %d %d %d", &p[i], &X, &Y, &V, &Z, &T);
		p[i]--;
		L = ((X+S)%M);
		R = ((Y+S)%M);
		I = ((Z+S)%M);
		J = ((T+S)%M);
		if(I>J) swap(I,J);
		if(L>R) swap(L,R);
		
		S=0;
		
		for(int j=0; j<M; j++) cap[i][j] = cap[p[i]][j];
		for(int j=L; j<=R; j++) cap[i][j] += V;
		for(int j=I; j<=J; j++) S += cap[i][j];
		cout << S << "\n";
	}
}

int main()
{
	//freopen("ants.in", "r", stdin);
	
	init();
	solve();
	
	return 0;
}
