#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,i,aux, poz,val,x,y, m, op;
int aint[120010];
int suma;
void update(int nod, int l, int r, int poz, int val)
{
if(l==r) aint[nod]+=val;
else
{
int mid=(l+r)/2;
if(poz<=mid) update(2*nod,l, mid, poz, val);
else update(2*nod+1, mid+1, r, poz, val);
aint[nod]=aint[2*nod] + aint[2*nod+1];
}
}
void query(int nod, int l, int r, int x, int y)
{
if(l>=x && r<=y) suma+=aint[nod];
else
{
int mid=(l+r)/2;
if(x<=mid) query(2*nod, l, mid,x, y);
if(y>mid) query(2*nod+1, mid+1, r, x, y);
}
}
int main()
{
fin>>n>>m;
for(i=1; i<=n; i++)
{
fin>>x;
update(1,1,n,i,x);
}
for(i=1; i<=m; i++)
{
fin>>op>>x>>y;
if(op==0) update(1, 1, n, x, -y);
else
{
suma=0;
query(1, 1,n, x, y);
fout<<suma<<'\n';
}
}
return 0;
}