include <stdio.h>
long long mh[200005];
static inline int ds() {
int k = 0, c = getchar();
while (c < '0' || c > '9') c = getchar();
while (c >= '0' && c <= '9') {
k = k * 10 + c - '0';
c = getchar();
}
return k;
}
static inline long long dll() {
long long k = 0;
int d = 1, c = getchar();
while (c != '-' && (c < '0' || c > '9')) c = getchar();
if (c == '-') {
d = -1;
c = getchar();
}
while (c >= '0' && c <= '9') {
k = k * 10 + c - '0';
c = getchar();
}
return k * d;
}
static inline void is(int k) {
if (k == 0) {
putchar('0');
putchar('\n');
return;
}
char s[15];
int t = 0;
while (k > 0) {
s[t++] = (k % 10) + '0';
k /= 10;
}
while (t > 0) putchar(s[--t]);
putchar('\n');
}
int main() {
int sl = ds();
int tv = ds();
long long s1 = dll();
int kq = 0;
for (int i = 1; i < sl; ++i) {
long long s2 = dll();
mh[i] = s1 - s2;
if (mh[i] > 0) ++kq;
s1 = s2;
}
while (tv--) {
int t = ds();
int p = ds();
long long gt = dll();
if (t > 1) {
if (mh[t - 1] > 0) --kq;
mh[t - 1] -= gt;
if (mh[t - 1] > 0) ++kq;
}
if (p < sl) {
if (mh[p] > 0) --kq;
mh[p] += gt;
if (mh[p] > 0) ++kq;
}
is(kq);
}
return 0;
}