#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;

long long int a[1<<18],li[1<<18],lj[1<<18],l[1<<18],r[1<<18],p[1<<18],sums[1<<19],v[1<<18],addd;

long long int getsum(long long int l,long long int r)
{
   return sums[r]-sums[l-1];
}

long long int addition(long long int ind,long long int cind)
{
   long long aaa[1<<5];
   //long long j=ind;
   //cout<<addd<<" ";
   //cout<<ind<<" "<<p[ind]<<endl;;
   //cout<<"   "<<ind<<" "<<l[ind]<<" "<<r[ind]<<" "<<li[cind]<<" "<<lj[cind]<<endl;
   aaa[1]=l[ind];
   aaa[2]=r[ind];
   aaa[3]=li[cind];
   aaa[4]=lj[cind];

   sort(aaa+1,aaa+5);

   if(ind!=1)
   {
      /*if(l[ind]>lj[cind])
      {
      }
      else
      {
         if(li[cind]>r[ind])
         {
         }
         else
         {

         }
      }*/
     // cout<<"    "<<aaa[1]<<" "<<aaa[4]<<endl;
      if((r[ind]-l[ind]+1)+(lj[cind]-li[cind]+1)>aaa[4]-aaa[1]+1)
      {
         //cout<<"OOK\n";
         //cout<<(r[ind]-l[ind]+1)+(lj[cind]-li[cind]+1)<<" "<<(aaa[4]-aaa[1]+1)<<endl;
         addd=addd+(((r[ind]-l[ind]+1)+(lj[cind]-li[cind]+1))-(aaa[4]-aaa[1]+1))*v[ind];
         //cout<<addd<<endl;;
      }

      addd=addd+addition(p[ind],cind);
   }
   return 0;
}

int main()
{
   long long int i,n,m,s=0;

   scanf("%lld",&n);
   scanf("%lld",&m);

   /*while((1<<i)<=n)
   {
      i++;
   }

   bs=i;
   bs=bs*2;

   for(i=1;i<=bs;i++)
   {
      sums[i]=0;
   }
   */

   sums[0]=0;
   for(i=1;i<=m;i++)
   {
      scanf("%lld",&a[i]);
      sums[i]=sums[i-1]+a[i];
   }

   long long int x,y,z,t,cuans=0;;

   for(i=2;i<=n;i++)
   {
      scanf("%lld",&p[i]);
      scanf("%lld",&x);
      scanf("%lld",&y);
      scanf("%lld",&v[i]);
      scanf("%lld",&z);
      scanf("%lld",&t);

      //cout<<x<<" "<<s<<" "<<m<<endl;

      l[i]=((x+s)%m)+1;
      r[i]=((y+s)%m)+1;
      li[i]=((z+s)%m)+1;
      lj[i]=((t+s)%m)+1;

      //cout<<"__-_"<<i<<" "<<l[i]<<" "<<r[i]<<" "<<li[i]<<" "<<lj[i]<<endl;

      cuans=getsum(li[i],lj[i]);
      //system("pause");
      //cout<<"OKK\n";
      //cout<<endl<<endl;
      //cout<<cuans<<"\n";
      addd=0;

      //cout<<"__-_"<<i<<" "<<l[i]<<" "<<r[i]<<" "<<li[i]<<" "<<lj[i]<<endl;
      addd=0;
      addition(i,i);
      cuans=cuans+addd;

      //cout<<"__-__"<<i<<" "<<l[i]<<" "<<r[i]<<" "<<li[i]<<" "<<lj[i]<<endl;

      //cout<<"OKK\n";
      cout<<cuans<<endl;
      //cout<<"--------\n";
      s=cuans;

   }
   return 0;
}

/*
4 4
3 6 7 5
1 2 3 1 0 1
2 1 2 6 2 2
1 0 2 8 0 3

4 4
3 6 7 5
1 2 3 1 0 1
2 1 2 7 2 2
1 0 2 8 0 3

*/
