#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int ar[4*100010],n,m;
void update(int st,int dr,int pz,int pza,int val)
{
if(st>pz || dr<pz) return;
if(st==dr)
{
ar[pza]-=val;
return;
}
int mid=(dr+st)/2;
update(st,mid,pz,pza*2,val);
update(mid+1,dr,pz,pza*2+1,val);
ar[pza]=ar[pza*2]+ar[pza*2+1];
}
int fnd(int st,int dr,int pza,int a,int b)
{
if(st>b || dr<a) return 0;
if(st>=a && dr<=b) return ar[pza];
int mid=(dr+st)/2;
int rezst,rezdr;
rezst=fnd(st,mid,pza*2,a,b);
rezdr=fnd(mid+1,dr,pza*2+1,a,b);
return rezst+rezdr;
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
{
int v;
in>>v;
update(1,n,i,1,-v);
}
for(int i=1;i<=m;i++)
{
int op,a,b;
in>>op>>a>>b;
if(op==0)
{
update(1,n,a,1,b);
}
else
{
out<<fnd(1,n,1,a,b)<<'\n';
}
}
return 0;
}