#include<stdio.h>
int arb[32768];
//int s[16384];
void adauga(int unde, int val, int poz, int st, int dr)
{
if ((unde>=st) && (unde<=dr))
arb[poz]+=val;
if (st==dr) return;
adauga(unde, val, poz*2, st, (st+dr)/2);
adauga(unde, val, poz*2+1, (st+dr)/2+1, dr);
return;
}
int intreaba(int ST, int DR, int poz, int st, int dr)
{
if ((ST>dr) || (DR<st))
return 0;
if ((ST<=st) &&(dr<=DR))
return arb[poz];
return intreaba(ST, DR, poz*2, st, (st+dr)/2) + intreaba(ST, DR, poz*2+1, (st+dr)/2+1, dr);
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int n, m, val, unde, tip, i;// j, cost;
scanf("%d%d", &n, &m);
for (i=1; i<=n; i++)
{
scanf("%d", &val);
// adauga(i, val, 1, 1, n);
}
for (i=1; i<=m; i++)
{
scanf("%d%d%d", &tip, &unde, &val);
if (tip==0)
{
val*=-1;
// adauga(unde, val, 1, 1, n);
}
else
{
// printf("%d\n", intreaba(unde, val, 1, 1, n));
}
}
}