#include<iostream>
using namespace std;
const int max_n=1e6+7;
int n,m;
int a[max_n];
int tree[max_n*2+100];
int lazy[max_n*2+100];
int s=0;
int build_tree(int node,int x,int y){
    if(x==y){
        return tree[node]=a[x];
    }
    int mid=(x+y)/2;
    tree[node]=(build_tree(node*2,x,mid) + build_tree(node*2+1,mid+1,y));
    return tree[node];
}
void update(int node, int a, int b,int l,int r,int v){
    if(lazy[node]){
        tree[node]+=lazy[node]*(b-a)+1;
        if(a!=b){
            lazy[node*2]+=lazy[node];
            lazy[node*2+1]+=lazy[node];
        }
        lazy[node]=0;
    }
    if(a>r||b<l){
        return;
    }
    if(a>=l&&b<=r){
        tree[node]+=v*(b-a+1);
        lazy[node*2]+=v;
        lazy[node*2+1]+=v;
        return;
    }
    int mid=(a+b)/2;
    update(node*2,a,mid,l,r,v);
    update(node*2+1,mid+1,b,l,r,v);
    tree[node]=tree[node*2]+tree[node*2+1];
}
void solve(int l,int r,int q, int w,int v){
    update(1,1,m,l,r,v);
    
}
void read(){
    int i;
    cin>>n>>m;
    for(i=1;i<=m;i++){
        cin>>a[i];
    }
    build_tree(1,1,m);
    int p,x,y,v,z,t;
    int l,r,q,w;
    for(i=1;i<n;i++){
        cin>>p>>x>>y>>v>>z>>t;
        l=(x+s)%m+((x+s)/m>0);
        r=(y+s)%m+((y+s)/m>0);
        q=(z+s)%m+((z+s)/m>0);
        w=(t+s)%m+((t+s)/m>0);
        solve(l,r,q,w,v);
    }
}
int main()
{
return 0;
}