#include <fstream>
#define nmax 150000
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int C[nmax];
void update(int nod,int l,int r,int p,int val)
{
int m;
C[nod]+=val;
if(l==r)return ;
m=(l+r)/2;
if(p<=m)
update(2*nod,l,m,p,val);
else update(2*nod+1,m+1,r,p,val);
}
int query(int nod,int l,int r,int a,int b)
{
int m,t=0;
if(a<=l&&r<=b)
return C[nod];
else
{
m=(l+r)/2;
if(a<=m)
t+=query(2*nod,l,m,a,b);
if(b>m)
t+=query(2*nod+1,m+1,r,a,b);
return t;
}
}
int main()
{
int N,M,i,v,x;
in>>N>>M;
for(i=1;i<=N;i++)
in>>v,update(1,1,N,i,v);
while(M--)
{
in>>x>>i>>v;//x-operatia,i-clientul,v-valoarea
//x-operatia,i-clientulS,v-clientulF
if(!x)
update(1,1,N,i,-v);//achitare
else
out<<query(1,1,N,i,v)<<'\n';
}
return 0;
}