#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int vv[1000], n, m, j, k;
int query(int n, int ll, int rr, int a, int b)
{
if(a <= ll && rr <= b)
return vv[n];
int r = 0, middle = (ll+rr)/2;
if(a <= middle)
r += query(2*n, ll, middle, a, b);
if(b > middle)
r += query(2*n+1, middle+1, rr, a, b);
return r;
}
void update(int n, int ll, int rr, int a, int b, int v)
{
if(a <= ll && rr <= b) {
vv[n] += v;
return;
}
int middle = (ll+rr)/2;
if(a <= middle)
update(2*n, ll, middle, a, b, v);
if(b > middle)
update(2*n+1, middle+1, rr, a, b, v);
vv[n] = vv[n*2]+vv[n*2+1];
}
void read(){
int z;
for (int i = 1; i <= n; i++){
f >> z; update(1, 1, n, i, i, z);
}
}
int main()
{
int i, a, b, d;
f>>n>>m;
read();
for(i = 1; i <=m; ++ i) {
f>>a>>b>>d;
if(a==1) {
int sum = query(1, 1, n, b, d);
g<<sum<<endl;
}
else { update(1, 1, n, b, b, -d);
}
}
return 0;
}