#include<bits/stdc++.h>
using namespace std;
typedef long long lli;
const int nmax=1e5+9;
int n,m;
void solvestupid(){
   lli a[1000][1000];
   int br=1;
   for(int i=1;i<=m;i++){
      cin>>a[1][i];
   }
   lli s=0;
   for(int ii=1;ii<n;ii++){
      lli p,x,y,v,z,t;
      cin>>p>>x>>y>>v>>z>>t;
      lli l,r,i,j;
      l=((x+s)%m)+1;r=((y+s)%m)+1;
      i=((z+s)%m)+1;j=((t+s)%m)+1;
      br++;
      lli snew=0;
      for(int jj=1;jj<=m;jj++){
         a[br][jj]=a[p][jj];
         if(l<=jj&&jj<=r)a[br][jj]+=v;
         if(i<=jj&&jj<=j)snew+=a[br][jj];
      }
      cout<<snew<<"\n";
      s=snew;
   }
}
lli t[nmax*4],lazy[4*nmax];
struct node{
   int ll,rr,id;
   node(){}
   node(int L,int R,int X){
      ll=L;
      rr=R;
      id=X;
      lazy_update();
   }
   node left(){
      return node(ll,(ll+rr)/2,id*2);
   }
   node right(){
      return node((ll+rr)/2+1,rr,id*2+1);
   }
   void lazy_update(){
      t[id]+=lazy[id]*(rr-ll+1);
      if(id*2<4*nmax){
         lazy[id*2]+=lazy[id];
         lazy[id*2+1]+=lazy[id];
      }
      lazy[id]=0;
   }
   void assign_range(int L,int R,int V){
      if(L>rr||R<ll)return;
      if(L<=ll&&rr<=R){
         lazy[id]+=V;
         lazy_update();
         return;
      }
      left().assign_range(L,R,V);
      right().assign_range(L,R,V);
      t[id]=t[id*2]+t[id*2+1];
   }
   lli getsum(int L,int R){
      if(L>rr||R<ll)return 0;
      if(L<=ll&&rr<=R){
         return t[id];
      }
      lli ss=0;
      ss+=left().getsum(L,R);
      ss+=right().getsum(L,R);
      return ss;
   }
};
node root(1,n,1);
struct zaqv{
   int l,r,v,i,j;
   zaqv(){}
   zaqv(int _l,int _r,int _v,int _i,int _j){
      l=_l;
      r=_r;
      v=_v;
      i=_i;
      j=_j;
   }
};
void solvehard(){
   int a[nmax];
   root.rr=m;
   int br=0;
   for(int i=1;i<=m;i++){
      cin>>a[i];
      root.assign_range(i,i,a[i]);
   }
   lli s=0;
   for(int ii=1;ii<n;ii++){
      lli p,x,y,v,z,t;
      cin>>p>>x>>y>>v>>z>>t;
      lli l,r,i,j;
      l=((x+s)%m)+1;r=((y+s)%m)+1;
      i=((z+s)%m)+1;j=((t+s)%m)+1;
      br++;
      lli snew=0;
      root.assign_range(l,r,v);
      snew=root.getsum(i,j);
      cout<<snew<<"\n";
      s=snew;
   }
}
int main(){
   ios_base::sync_with_stdio(false);
   cin.tie(0);
   cin>>n>>m;
   if(n<=1000&&m<=1000){
      solvestupid();
      exit(0);
   }
   solvehard();
}
