#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int aint[60004];
int n,m;
void update(int index, int st, int dr, int target, int val)
{
aint[index]+=val;
if(st<dr)
{
int mid = (st+dr)/2;
if(target<=mid)
update(index<<1, st, mid, target, val);
else
update((index<<1)+1, mid+1, dr, target, val);
}
}
int query(int index, int st, int dr, int tst, int tdr)
{
if(tst<=st && dr<=tdr)
return aint[index];
int mid = (st+dr)/2;
if(tst<=mid && tdr>mid)
return query(index<<1, st, mid, tst, tdr) + query((index<<1)+1, mid+1, dr, tst, tdr);
if(tdr<=mid && tdr>=st)
return query(index<<1, st, mid, tst, tdr);
if(tst>mid && tst<=dr)
return query((index<<1)+1, mid+1, dr, tst, tdr);
}
int main()
{
int i, op, x, y;
f>>n>>m;
for(i=1;i<=n;++i)
{
f>>x;
update(1, 1, n, i, x);
}
for(i=1;i<=m;++i)
{
f>>op>>x>>y;
if(op==0)
update(1,1,n, x, -y);
else
g<<query(1, 1,n, x,y)<<'\n';
}
return 0;
}