#include <cstdio>
int v[60000], n, m, p, x, s, a, b;
void update (int nod, int l , int r)
{
int m;
if (l==r) v[nod]+=x; else
{
m=(l+r)/2;
if (p<=m) update (2*nod, l, m);
else update (2*nod+1, m+1, r);
v[nod]=v[2*nod] + v[2*nod +1];
}
}
void query (int nod, int l, int r)
{
int m;
if (a<=l && r<=b) s+=v[nod]; else
{
m=(l+r)/2;
if (a<=m) query (nod*2, l, m);
if (m<b) query (nod*2+1, m+1, r);
}
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d", &n, &m);
int i;
for (i=1; i<=n; i++)
{
scanf("%d",&x);
p=i;
update(1, 1, n);
}
int t;
while (m--)
{
scanf("%d %d %d", &t, &a, &b);
if (!t)
{
x=-b;
p=a;
update(1, 1, n);
} else
{
s=0;
query(1, 1, n);
printf("%d\n",s);
}
}
}