#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<map>
#define ll long long
using namespace std;
ll n,m,a[200010],c[200010];
int lowbit(int x)
{
return x&-x;
}
void add(int x,ll k)
{
for(ll i=x;i<=n;i+=lowbit(i))c[i]+=k;
}
ll he(int x)
{
ll cnt=0;
for(int i=x;i>0;i-=lowbit(i))cnt+=c[i];
return cnt;
}
int main()
{
cin>>n>>m;
for(ll i=1;i<=n;i++)
{
cin>>a[i];
add(i,a[i]-a[i-1]);
}
while(m--)
{
ll t,x,y,k;
cin>>t;
if(t==1)
{
cin>>x>>y>>k;
add(x,k);
add(y+1,-k);
}
else if(t==2)
{
cin>>k;
add(1,k);
}
else if(t==3)
{
cin>>k;
add(1,-k);
}
else if(t==4)
{
cin>>x>>y;
cout<<he(y)-he(x-1)<<endl;
}
else cout<<he(1)<<endl;
}
return 0;
}