#include <iostream>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int sum[16000000];
inline void update (int nod, int st, int dr, int pos, int val)
{ if(st==dr)
{
sum[nod]=val;
return;
}
int med=(st+dr)/2;
if(pos<=med)update(nod*2,st,med,pos,val);
if(pos>med)update(nod*2+1,med+1,dr,pos,val);
sum[nod]=sum[nod*2]+sum[nod*2+1];
}
inline int query (int nod, int st, int dr, int a,int b)
{ if(a<=st&&dr<=b)
return sum[nod];
int ans=0;
int med=(st+dr)/2;
if(a<=med)ans=ans+query(nod*2,st,med,a,b);
if(b>med)ans=ans+query(nod*2+1,med+1,dr,a,b);
return ans;
}
int main()
{ int i,n,m,x,t,a,b;
in>>n>>m;
for(i=1;i<=n;i++)
{
in>>x;
update(1,1,n,i,x);
}
for(i=1;i<=m;i++)
{ in>>t>>a>>b;
if(t==0)
{
update (1,1,n,a,query(1,1,n,a,a)-b);
}
else
out<<query(1,1,n,a,b)<<'\n';
}
return 0;
}