#include <bits/stdc++.h>
using namespace std;
const long long maxn = 5e5 + 10;
long long a[maxn];
long long c[maxn];
long long n;
long long lowbit(long long i)
{
return i & (-i);
}
long long sum = 0;
long long query(long long x)
{
sum = 0;
for (long long i = x; i > 0; i -= lowbit(i))
{
sum += c[i];
}
return sum;
}
void update(long long x,long long add)
{
for (long long i = x; i <= n; i += lowbit(i))
{
c[i] += add;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
long long m;
cin >> m;
for (long long i = 1; i <= n; i++)
{
cin >> a[i];
update(i,a[i]);
}
while (m--)
{
long long op;
long long x, y;
long long k;
cin >> op ;
if (op == 1)//将第k个数加上k
{
cin >> x >> y >> k;
for (int i = x; i <= y; i++)
{
update(i, k);
}
}
else
{//执行求和操作
cin >> x;
cout << query(x) - query(x - 1) << '\n';
}
}
return 0;
}