#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int arbore[60001],s;
void create(int nod,int val,int a,int b,int poz)
{
if(a==b)
{arbore[nod]+=val;return;}
int mij=(a+b)/2;
if(poz<=mij)
create(2*nod,val,a,mij,poz);
if(poz>mij)
create(2*nod+1,val,mij+1,b,poz);
arbore[nod]=arbore[2*nod]+arbore[2*nod+1];
}
void query(int nod,int a,int b,int ua,int ub)
{
if(a>=ua&&b<=ub)
s+=arbore[nod];
else
{
int mij=(a+b)/2;
if(ua<=mij)
query(2*nod,a,mij,ua,ub);
if(ub>mij)
query(2*nod+1,mij+1,b,ua,ub);
}
}
int main()
{
int n,m,a,b,c,i,x;
in>>n>>m;
for(i=1; i<=n; i++)
{
in>>x;
create(1,x,1,n,i);
}
for(i=1; i<=m; i++)
{
in>>c>>a>>b;
if(c==0)
create(1,-b,1,n,a);
else
{
s=0;
query(1,1,n,a,b);
out<<s<<'\n';
}
}
return 0;
}