#include<iostream>
#include<cstdio>
#define maxn 500009
//#define lowbit(x) x&(-x)
#define ll long long
using namespace std;
int n,m;
ll a[maxn];
int lowbit(int i){
return i&(-i);
}
ll read()
{
char c=getchar();
ll ans=0,flag=1;
while(c<'0' || c>'9')
{
if(c=='-') flag=-1;
c=getchar();
}
while(c>='0' && c<='9')
{
ans=(ans<<1)+(ans<<3)+c-'0';
c=getchar();
}
return ans*flag;
}
void add(int x,ll k)
{
for(int i=x;i<=n;i+=lowbit(i)) a[x]+=k;
}
ll ask(int x)
{
ll ans=0;
for(int i=x;i;i-=lowbit(i)) ans+=a[i];
return ans;
}
int main()
{
scanf("%d%d",&n,&m);
ll last=0,now;
for(int i=1;i<=n;++i) {
now=read();
add(i,last-now);
last=now;
}
for(int i=1;i<=m;++i)
{
int pan,x,y;
ll k;
scanf("%d",&pan);
if(pan==1) {scanf("%d%d%lld",&x,&y,&k); add(x,k); add(y+1,-k);}
else {scanf("%d",&x); printf("%lld\n",ask(x));}
}
}