#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n,m;
int a[32770];
int v[15005];
void initializare(int nod, int st, int dr)
{
if(st==dr)
{
if(st<=n)
a[nod]=v[st];
return;
}
int med=(st+dr)/2;
initializare(2*nod, st, med);
initializare(2*nod+1, med+1, dr);
a[nod]=a[2*nod] + a[2*nod+1];
}
void update(int nod, int st, int dr, int poz, int val)
{
if(st==dr)
{
a[nod]-=val;
return;
}
int med=(st+dr)/2;
if(poz<=med)
update(2*nod, st, med, poz, val);
else
update(2*nod+1, med+1, dr, poz, val);
a[nod]=a[2*nod]+a[2*nod+1];
}
int query(int nod, int st, int dr, int qst, int qdr)
{
if(st>=qst && dr<=qdr)
return a[nod];
int med=(st+dr)/2, sum=0;
if(qst<=med)
sum += query(2*nod, st, med, qst, qdr);
if(qdr>med)
sum += query(2*nod+1, med+1, dr, qst, qdr);
return sum;
}
int main()
{
int q;
cin>>n>>q;
m=pow(2, floor(log2(n)+!(log2(n)==floor(log2(n)))));
for(int i=1;i<=n;i++)
cin>>v[i];
initializare(1,1,m);
for(int i=1;i<=q;i++)
{
int x,y,c;
cin>>c>>x>>y;
if(c==0)
{
update(1,1,m,x,y);
}
else
{
cout<<query(1,1,m,x,y)<<'\n';
}
}
return 0;
}