#include<bits/stdc++.h>
using namespace std;
#define int long long
#define MAXN 100010
int n,m,p;
int c[MAXN],a[MAXN],b1[MAXN],b2[MAXN];
int op;
int low(register int x){
return x&-x;
}
void add(int x,int y){
int id=x;
while(x<=n){
b1[x]+=y;
b2[x]+=y*id;
x+=low(x);
}
}
int que(int x){
int id=x;
int sum=0;
while(x!=0){
sum+=(id+1)*b1[x]-b2[x];
x-=low(x);
}
return sum;
}
inline void read(register int &a){
a=0;
char c;
while((c=getchar())<48);
do a=(a<<3)+(a<<1)+(c^48);
while((c=getchar())>47);
}
signed main(){
read(n);
read(m);
for(int i=1;i<=n;i++){
read(a[i]);
c[i]=a[i]-a[i-1];
add(i,c[i]-c[i-1]);
}
for(int i=1;i<=m;i++){
read(op);
int l,r,k,d;
if(op==1){
read(l),read(r),read(k),read(d);
add(l,k);
add(l+1,d-k);
add(r+1,-(r-l+1)*d-k);
add(r+2,k+(r-1)*d);
}if(op==2){
read(p);
cout<<que(p)<<endl;
}
}
return 0;
}