#include<bits/stdc++.h>
using namespace std;
long long n,f,a[200005],l[500],r[500],belong[200005],sum[500],sum2[500];
void kuai(){
long long len=sqrt(n),tot=(n-1)/len+1;
for(long long i=1;i<=tot;i++){
l[i]+=r[i-1]+1,r[i]=i*len;
}
r[tot]=n;
for(long long i=1;i<=tot;i++){
for(long long j=l[i];j<=r[i];j++) sum[i]+=a[j],belong[j]=i;
}
}
long long getsum(long long l1,long long r1){
long long p=belong[l1],q=belong[r1],ans=0;
if(p==q){
for(long long i=l1;i<=r1;i++) ans+=a[i];
return ans;
}
for(long long i=l1;i<=r[p];i++) ans+=(a[i]+sum2[p]);
for(long long i=p+1;i<q;i++){
ans+=sum[i];
ans+=(sum2[i]*(r[i]-l[i]+1));
}
for(long long i=l[q];i<=r1;i++) ans+=(a[i]+sum2[q]);
return ans;
}
void add(long long l1,long long r1,long long k){
long long p=belong[l1],q=belong[r1];
if(p==q){
for(long long i=l1;i<=r1;i++){
a[i]+=k;
sum[p]+=k;
}
return;
}
for(long long i=l1;i<=r[p];i++){
a[i]+=k;
sum[p]+=k;
}
for(long long i=p+1;i<q;i++){
sum2[i]+=k;
}
for(long long i=l[q];i<=r1;i++){
a[i]+=k;
sum[q]+=k;
}
}
int main() {
cin>>n>>f;
for(long long i=1;i<=n;i++){
cin>>a[i];
}
kuai();
while(f--){
long long c,l,r,k;
cin>>c;
if(c==1){
cin>>l>>r>>k;
add(l,r,k);
}
if(c==2){
cin>>k;
a[1]+=k;
sum[belong[1]]+=k;
}
if(c==3){
cin>>k;
a[1]-=k;
sum[belong[1]]-=k;
}
if(c==4){
cin>>l>>r;
cout<<getsum(l,r)<<endl;
}
if(c==5){
cout<<a[1]<<endl;
}
}
return 0;
}