#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int arb[60005];
void update(int nod, int left, int right, int p, int val)
{
int m=(left+right)/2;
if(left==right)
{
arb[nod]+=val;
return;
}
if(m >= p)
update(2*nod,left,m,p,val);
else
{
update(2*nod+1,m+1,right,p,val);
}
arb[nod]+=val;
}
void query(int nod, int left, int right, int a, int b, int &suma )
{
int m=(left+right)/2;
if(left>=a && right<=b)
{
suma+=arb[nod];
return;
}
if( m >= a)
query(2*nod,left,m,a,b,suma);
if(m + 1 <= b)
query(2*nod+1,m+1,right,a,b,suma);
}
int main()
{
int n,m,x, i, tip,a , b, suma;
f>>n>>m;
for( i=1; i<=n; i++)
{
f>>x;
update(1,1,n,i,x);
}
i = 1;
while ( i <= m)
{
f>>tip>>a>>b;
if(tip==0)
update(1,1,n,a,-b);
else
{
suma=0;
query(1,1,n,a,b,suma);
g<<suma<<endl;
}
i ++;
}
return 0;
}