#include<fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
const int nmax = 15000;
int adi[4*nmax],n,m,i,x;
int sum(int nod,int nl,int nr,int l,int r)
{
if (l>r) return 0;
if (nl==l && r==nr)
return adi[nod];
int mij=(nl+nr)/2;
return
sum(2*nod,nl,mij,l,min(r,mij))+ sum(2*nod+1,mij+1,nr,max(l,mij+1),r);
}
void update(int nod,int nl,int nr, int poz, int val)
{
if (nl==nr) adi[nod]+=val; else{
int mij=(nl+nr)/2;
if (poz<=mij) update(2*nod,nl,mij,poz,val);
else update(2*nod+1,mij+1,nr, poz,val);
adi[nod]=adi[2*nod]+adi[2*nod+1];
}
}
int main()
{
cin>>n>>m;
for (i=1;i<=n;i++) cin>>x, update(1,1,n,i,x);
while (m--) {
int type,x,y;
cin>>type>>x>>y;;
if (type==0) update(1,1,n,x,-y); else
cout<<sum(1,1,n,x,y)<<"\n";
}
return 0;
}