#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define pll pair<ll, ll>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m, x, y, q;
int stree[100000];
int query(int x, int y, int st, int dr, int node)
{
if(x<=st && y>=dr) return stree[node];
int mid = (st+dr)/2, s1 = 0, s2 = 0;
if(x<=mid) s1 = query(x, y, st, mid, node*2);
if(y>mid) s2 = query(x, y, mid+1, dr, node*2+1);
return s1+s2;
}
void update(int pos, int val, int st, int dr, int node)
{
if(st == dr) stree[node] -=val;
else{
int mid = (st+dr)/2;
if(pos<=mid) update(pos, val, st, mid, node*2);
else update(pos, val, mid+1, dr, node*2+1);
stree[node] = stree[node*2]+stree[node*2+1];
}
}
int main()
{
fin>>n>>m;
for(int i=1; i<=n; i++)
{
fin>>x;
update(i, -1*x, 1, n, 1);
}
for(int i=1; i<=m; i++)
{
fin>>q>>x>>y;
if(q)
fout<<query(x, y, 1, n, 1)<<'\n';
else
update(x, y, 1, n, 1);
}
return 0;
}