#include<bits/stdc++.h>
using namespace std;
long long t[500000],a[500000],lan[500000];
void fl(int x,int l,int r)
{
if(lan[x]==0) return ;
int val=lan[x],mid=(l+r)/2;
lan[x*2]+=val,t[x*2]+=(mid-l+1)*val;
lan[x*2+1]+=val,t[x*2+1]+=(r-mid)*val;
lan[x]=0;
}
void f(int x,int l,int r)
{
if(l==r)
{
t[x]=a[l];
return ;
}
int mid=(l+r)/2;
f(x*2,l,mid);
f(x*2+1,mid+1,r);
t[x]=t[x*2]+t[x*2+1];
}
int sum(int x,int l,int r,int L,int R)
{
if(L<=l&&r<=R)
return t[x];
long long ans=0;
int mid=(l+r)/2;
fl(x,l,r);
if(L<=mid)
ans+=sum(x*2,l,mid,L,R);
if(mid<R)
ans+=sum(x*2+1,mid+1,r,L,R);
return ans;
}
void f3(int x,int l,int r,int L,int R,int v)
{
if(L<=l&&r<=R){
lan[x]+=v;
t[x]+=(r-l+1)*v;
return ;
}
fl(x,l,r);
int mid=(l+r)/2;
if(L<=mid) f3(x*2,l,mid,L,R,v);
if(mid<R) f3(x*2+1,mid+1,r,L,R,v);
}
int n,m;
void print()
{
int j=1,t2=1;
for(int i=1; i<=(n<<2); i++)
{
j++;
printf("%lld ",t[i]);
if(j>pow(2,(t2-1)))
{
printf("\n");
j=1;
t2++;
}
}
printf("\n\n");
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
f(1,1,n);
for(int i=1;i<=m;i++)
{
int p;
scanf("%d",&p);
if(p==1)
{
int u,v,w;
cin>>w>>u>>v;
f3(1,1,n,w,u,v);
print();
}
else
{
int u,v;
cin>>u>>v;
cout<<sum(1,1,n,u,v)<<endl;
}
}
return 0;
}