#include<bits/stdc++.h>
using namespace std;
long long n,m,a[210000],sum[210000],belong[210000],L[210000],R[210000],add[210000],t,l,op,r,k;
inline int read()
{
char c=getchar();int x=0,f=1;
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
void change(int l,int r,int d)
{
int p=belong[l],q=belong[r];
if(p==q)
{
for(int i=l;i<=r;i++)a[i]+=d;
sum[p]+=(r-l+1)*d;
return;
}
for(int i=l;i<=R[p];i++)a[i]+=d;
sum[p]+=(R[p]-l+1)*d;
for(int i=L[q];i<=r;i++)a[i]+=d;
sum[q]+=(r-L[q]+1)*d;
for(int i=p+1;i<q;i++)add[i]+=d;
}
long long ask(int l,int r)
{
long long ans=0;
int p=belong[l],q=belong[r];
if(p==q)
{
for(int i=l;i<=r;i++)ans+=a[i];
return ans;
}
for(int i=l;i<=R[p];i++)ans+=a[i];
for(int i=p+1;i<q;i++)ans+=sum[i]+add[i]*(R[i]-L[i]+1);
for(int i=L[q];i<=r;i++)ans+=a[i];
return ans;
}
int main()
{
n=read();
m=read();
for(int i=1;i<=n;i++)a[i]=read();
t=sqrt(n);
for(int i=2;i<=t;i++)
{
L[i]=R[i]+1;
R[i]=L[i]+t-1;
}
if(t*t<n)
{
t++;
L[t]=R[t-1]+1;
R[t]=n;
}
for(int i=1;i<=t;i++)
{
for(int j=L[i];j<=R[i];j++)
{
belong[j]=i;
sum[i]+=a[j];
}
}
while(m--)
{
op=read();
if(op==2||op==3)
{
k=read();
if(op==3)k=-k;
a[1]+=k;
sum[1]+=k;
}
if(op==5)printf("%lld\n",a[1]);
if(op==1)
{
l=read();
r=read();
k=read();
change(l,r,k);
}
if(op==4)
{
l=read();
r=read();
printf("%lld\n",ask(l,r));
}
}
return 0;
}