#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int a[100009];
int s[400009];
int tag[400009];
void pushdown(int p,int l,int r,int mid){
if(l==r) return;
if(tag[p]){
tag[p<<1]+=tag[p];
tag[p<<1|1]+=tag[p];
s[p<<1]+=tag[p]*(mid-l+1);
s[p<<1|1]+=tag[p]*(r-mid);
tag[p]=0;
}
}
void build(int p,int l,int r){
tag[p]=0;
if(l==r){
s[p]=a[l];
return;
}
int mid=l+r>>1;
build(p<<1,l,mid);
build(p<<1|1,mid+1,r);
s[p]=s[p<<1]+s[p<<1|1];
}
void add(int p,int l,int r,int x,int y,int w){
if(x<=l&&r<=y){
tag[p]+=w;
s[p]+=(r-l+1)*w;
return;
}
int mid=l+r>>1;
pushdown(p,l,r,mid);
if(x<=mid){
add(p<<1,l,mid,x,y,w);
}
if(y>mid){
add(p<<1|1,mid+1,r,x,y,w);
}
s[p<<1]+=tag[p]*(mid-l+1);
s[p<<1|1]+=tag[p]*(r-mid);
}
int sum(int p,int l,int r,int x,int y){
if(x<=l&&r<=y){
return s[p];
}
int mid=l+r>>1,ans=0;
pushdown(p,l,r,mid);
if(x<=mid) ans+=sum(p<<1,l,mid,x,y);
if(y>mid) ans+=sum(p<<1|1,mid+1,r,x,y);
return ans;
}
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
build(1,1,n);
while(m--){
int op,x,y,k;
cin>>op;
if(op==1){
cin>>x>>y>>k;
add(1,1,n,x,y,k);
}
if(op==2){
cin>>x>>y;
cout<<sum(1,1,n,x,y)<<endl;
}
for(int i=1;i<=n;i++){
cout<<sum(1,1,n,i,i)<<" ";
}
cout<<endl;
}
return 0;
}