#include <stdio.h>
FILE *g;
void readfrom(int *n, int *m, int *a, int b[100000][4])
{
FILE *f; int i, j;
f = fopen("datorii.in", "r");
fscanf(f, "%d %d", n, m);
for (i = 1; i <= *n; i++)
fscanf(f, "%d", &a[i]);
for (i = 1; i <= *m; i++)
for (j = 1; j <= 3; j++)
fscanf(f, "%d", &b[i][j]);
fclose(f);
}
void first(int n, int l, int *a)
{
a[n] -= l;
if (a[n] < 0) a[n] = 0;
}
void second(int n, int m, int *a, int st, int r, int *c)
{
int i, j;
for (i = st; i <= r; i++)
c[i] = 0;
c[st] = a[st];
for (i = st + 1; i <= r; i++)
{
c[i] = c[i - 1] + a[i];
}
fprintf(g, "%d\n", c[r]);
}
int main(void)
{
int a[15002], c[35002], b[100002][4]; int i, n, m;
readfrom(&n, &m, a, b);
g = fopen("datorii.out", "w");
for (i = 1; i <= m; i++)
{
if (b[i][1] == 0) first(b[i][2], b[i][3], a); else second(n, m, a, b[i][2], b[i][3], c);
}
fclose(g);
return (0);
}