#include<bits/stdc++.h>
#define lowbit(x) x&-x
#define ll unsigned long long
using namespace std;
const int N=500000;
ll n,q,a[N+5],c[N+5],c1[N+5],ans;
void add(ll x,ll s){
ll k=x;
while (x<=n){
c[x]+=s;
c1[x]+=s*k;
x+=lowbit(x);
}
}
int sum(ll x){
ll res=0,res1=0,k=x;
while (x){
res+=c[x];
res1+=c1[x];
x-=lowbit(x);
}
return res*(k+1)-res1;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>q;
for (int i=1;i<=n;i++){
cin>>a[i];
add(i,a[i]-a[i-1]);
}
while (q--){
int op,l,r,k;
cin>>op;
switch(op){
case 1:{
cin>>l>>r>>k;
add(l,k);
add(r+1,-k);
//for (int i=1;i<=n;i++) cout<<c[i]<<'.'<<c1[i]<<' ';cout<<'\n';
break;
}
case 2:{
cin>>k;
add(1,k);
add(2,-k);
//for (int i=1;i<=n;i++) cout<<c[i]<<'.'<<c1[i]<<' ';cout<<'\n';
break;
}
case 3:{
cin>>k;
k=-k;
add(1,k);
add(2,-k);
//for (int i=1;i<=n;i++) cout<<c[i]<<'.'<<c1[i]<<' ';cout<<'\n';
break;
}
case 4:{
cin>>l>>r;
//cout<<sum(r)<<'.'<<sum(l-1)<<'.';
cout<<sum(r)-sum(l-1)<<'\n';
break;
}
case 5:{
//cin>>l>>r;
cout<<sum(1)<<'\n';
break;
}
}
}
return 0;
}
WA28