#include<iostream>
using namespace std;
int n,f,a[2222222];
int lowbit(int x){
return (-x)&x;
}
void add(int x,int v){
for(int i=x ; i<=n ; i+=lowbit(i)) a[i]+=v;
}
int sum(int x){
int ans=0;
for(int i=x ; i>0 ; i-=lowbit(i)) ans+=a[i];
return ans;
}
int main(){
cin>>n>>f;
for(int i=1 ; i<=n ; i++){
int x;
cin>>x;
add(i,x);
}
for(int i=1 ; i<=f ; i++){
int op,a,b,c;
cin>>op;
if(op==1){
cin>>a>>b>>c;
for(int i=a ; i<=b ; i++) add(i,c);
}
if(op==2){
cin>>a;
add(1,a);
}
if(op==3){
cin>>a;
add(1,-a);
}
if(op==4){
cin>>a>>b;
cout<<sum(b)-sum(a-1)<<endl;
}
if(op==5){
cout<<sum(1)<<endl;
}
}
return 0;
}
AC/WA/TLE