#include <fstream>
#define NMax 15005
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N,M,AINT[4*NMax],Sum;
void Update(int nod,int left,int right,int pos, int val)
{
if(left==right)
{
AINT[nod]=AINT[nod]-val;
}
else
{
int mid=(left+right)/2;
if(pos<=mid)
Update(2*nod,left,mid,pos,val);
else
Update(2*nod+1,mid+1,right,pos,val);
AINT[nod]=AINT[2*nod]+AINT[2*nod+1];
}
}
void Query(int nod, int left, int right, int start, int finish)
{
if((start<=left) &&(right<=finish))
Sum+=AINT[nod];
else
{
int mid=(left+right)/2;
if(start<=mid) Query(2*nod,left,mid,start,finish);
if(mid<finish) Query(2*nod+1,mid+1,right,start,finish);
}
}
int main()
{ int val,op,a,b;
fin>>N>>M;
for(int i=1;i<=N;i++)
{
fin>>val;
Update(1,1,N,i,-val);
}
while(M--)
{
fin>>op>>a>>b;
if(op==0)
{
Update(1,1,N,a,b);
}
if(op==1)
{
Sum=0;
Query(1,1,N,a,b);
fout<<Sum<<"\n";
}
}
return 0;
}