#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,q,arbi[15000*4],x,y,c=1,poz,val;
void update(int node, int st, int dr, int poz, int val)
{int med;
if (st==dr)
{
arbi[node]-=val;
return;
}
med=(st+dr)/2;
if (med>=poz)
update(node*2,st,med,poz,val);
else
update(node*2+1,med+1,dr,poz,val);
arbi[node]=arbi[node*2]+arbi[node*2+1];
}
int query(int node, int st, int dr, int x, int y)
{int med=(st+dr)/2,r1=0,r2=0;
if (st>=x && dr<=y)
{
return(arbi[node]);
}
if (med>=x) r1=query(node*2,st,med,x,y);
if (med<y) r2=query(node*2+1,med+1,dr,x,y);
return (r1+r2);
}
int main()
{int i,nr;
f>>n>>q;
for (i=1;i<=n;i++)
{
f>>nr;
update(1,1,n,i,-nr);
}
for(i=1;i<=q;i++)
{
f>>c;
if (c==0)
{
f>>poz>>val;
update(1,1,n,poz,val);
}
else
{
f>>x>>y;
g<<query(1,1,n,x,y)<<"\n";
}
}
return 0;
}