#include <bits/stdc++.h>
using namespace std;
const int N = 100001;
int n, m, tree[N], w, x, y, z, last;
inline int lowbit(int x) { return x & (-x); }
void add(int x, int y) {
while (x <= n) {
tree[x] += y;
x += lowbit(x);
}
}
int sum(int x) {
int ans = 0;
while (x > 0) {
ans += tree[x];
x -= lowbit(x);
}
return ans;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> x;
add(i, x - last);
x = last;
}
for (int i = 1; i <= m; i++) {
cin >> w;
if(w == 1) {
cin >> x >> y >> z;
add(x, z);
add(y + 1, -z);
} else {
cin >> x;
cout << sum(x) << '\n';
}
}
}