#include <bits/stdc++.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int Ai[400005],i,n,a,b,m,c,x;
void Update(int val, int poz, int nod, int a, int b)
{
if(a==b)
{
Ai[nod]+=val;
return ;
}
int mij=(a+b)/2;
if(poz<=mij)Update(val,poz,nod*2,a,mij);
else Update(val,poz,nod*2+1,mij+1,b);
Ai[nod]=Ai[nod*2]+Ai[nod*2+1];
}
int query(int nod, int a, int b, int qa, int qb)
{
if(a>=qa && b<=qb)
{
return Ai[nod];
}
int rez1=0,rez2=0,mij=(a+b)/2;
if(qa<=mij) rez1=query(nod*2,a,mij,qa,qb);
if(qb>mij) rez2=query(nod*2+1,mij+1,b,qa,qb);
return rez1+rez2;
}
int main()
{
f>>n>>m;
for(i=1;i<=n;++i)
{
f>>x;
Update(x,i,1,1,n);
}
for(i=1;i<=m;++i)
{
f>>c>>a>>b;
if(c==0)Update(-b,a,1,1,n);
else g<<query(1,1,n,a,b)<<'\n';
}
return 0;
}