#include <iostream>
using namespace std;
int tree[500005];
int n,m;
int lowbit(int x){
return x & -x;
}
int add(int x,int k){
while (x<=n){
tree[x]+=k;
x+=lowbit(x);
}
}
int sum(int x){
int res=0;
while (x){
res+=tree[x];
x-=lowbit(x);
}
return res;
}
int main(){
int x=0;
cin>>n>>m;
for (int i=1;i<=n;i++){
int a;
cin>>a;
add(i,a-x);
x=a;
}
for (int i=1;i<=m;i++){
int a;
cin>>a;
if (a==1){
int b,c,k;
cin>>b>>c>>k;
add(b,k);
add(c+1,-k);
}
else{
int x;
cin>>x;
cout<<sum(x)<<endl;
}
}
return 0;
}