#include <fstream>
#define NMax 100005
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N, M, S[NMax];
void Update1(int P,int V)
{
for(int i=P;i<=N;i+=i&(-i))
S[i]+=V;
}
void Update2 (int P, int V)
{
for(int i=P; i<=N; i+=i&(-i))
S[i]-=V;
}
int Query(int P)
{
int Sum=0;
for(int i=P;i>0; i-=i&(-i))
Sum+=S[i];
return Sum;
}
int main()
{
fin>>N>>M;
for(int i=1;i<=N;i++)
{
int X;
fin>>X;
Update1(i,X);
}
while(M--)
{
int op,a,b;
fin>>op>>a>>b;
if(op==0)
{
Update2(a, b);
}
if(op==1)
{
fout<<Query(b)-Query(a-1)<<"\n";
}
}
return 0;
}