#include <math.h>
#include <fstream.h>
long p;
long sum(long *a[],long t,long v,long n,long i)
{long s=0;
if(t==pow(2,p-n)*i&&v==pow(2,p-n)*(i+1)-1)
{return a[n][i];}
if(t<pow(2,p-n-1)*(2*i+1))
{s+=sum(a,t,pow(2,p-n-1)*(2*i+1)-1,n+1,2*i);
}
if(v>=pow(2,p-n-1)*(2*i+1))
{s+=sum(a,pow(2,p-n-1)*(2*i+1),v,n+1,2*i+1);
}
return s;
}
int main()
{
long *a[15],*b;
long n,m,i,j,f,t,v;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
fin>>n>>m;
p=ceil((float)log(n)/log(2));
b=new long[(int)pow(2,p)];
memset(b,0,pow(2,p)*sizeof(long));
a[p]=b;
for (i=0;i<n;i++)
{fin>>b[i];
}
for (i=p-1;i>=0;i--)
{b=new long[(int)pow(2,i)];
memset(b,0,pow(2,i)*sizeof(long));
a[i]=b;
for (j=0;j<pow(2,i);j++)
{b[j]=a[i+1][2*j]+a[i+1][2*j+1];
}
}
for (i=1;i<=m;i++)
{fin>>f>>t>>v;
if(!f)
{t--;
for (j=p;j>=0;j--,t/=2)
{a[j][t]-=v;
}
}
else
{fout <<sum(a,t-1,v-1,0,0)<<'\n';
}
}
fout.close();
return 0;
}