#include <bits/stdc++.h>
using namespace std;
const int M = 3e5 + 233, maxM = M << 1;
long long tag[maxM], vl[maxM], vr[maxM];
int lc[maxM], rc[maxM], sz[maxM], mx1l[maxM], mx1r[maxM], mx2[maxM], mx2l[maxM],
    mx2r[maxM];
int sum, n, m, L, R, w;
int read() {
  int ans = 0, f = 1, c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    ans = ans * 10 + (c - '0');
    c = getchar();
  }
  return ans * f;
}
void up(int x) {
  int l = lc[x], r = rc[x], v1, v2;
  vl[x] = vl[l];
  vr[x] = vr[r];
  mx1l[x] = mx1l[l];
  if (mx1l[l] == sz[l] && vr[l] > vl[r]) mx1l[x] += mx1l[r];
  mx1r[x] = mx1r[r];
  if (mx1r[r] == sz[r] && vl[r] > vr[l]) mx1r[x] += mx1r[l];
  v1 = mx2l[l];
  if (mx2l[l] == sz[l] && vr[l] > vl[r]) v1 += mx1l[r];
  v2 = 0;
  if (mx1r[l] == sz[l] && vl[r] > vr[l]) v2 = mx1r[l] + mx2l[r];
  mx2l[x] = max(v1, v2);
  v1 = mx2r[r];
  if (mx2r[r] == sz[r] && vl[r] > vr[l]) v1 += mx1r[l];
  v2 = 0;
  if (mx1l[r] == sz[r] && vr[l] > vl[r]) v2 = mx1l[r] + mx2r[l];
  mx2r[x] = max(v1, v2);
  mx2[x] = max(mx2[l], mx2[r]);
  if (vr[l] > vl[r]) mx2[x] = max(mx2[x], mx2r[l] + mx1l[r]);
  if (vr[l] < vl[r]) mx2[x] = max(mx2[x], mx2l[r] + mx1r[l]);
}
void add(int x, long long w) {
  vl[x] += w;
  vr[x] += w;
  tag[x] += w;
}
void down(int x) {
  int l = lc[x], r = rc[x];
  add(l, tag[x]);
  add(r, tag[x]);
  tag[x] = 0;
}
void build(int l, int r) {
  int x = ++sum;
  sz[x] = r - l + 1;
  if (l == r) {
    vl[x] = vr[x] = read();
    mx1l[x] = mx1r[x] = mx2[x] = mx2l[x] = mx2r[x] = 1;
    return;
  }
  int mid = (l + r) >> 1;
  lc[x] = sum + 1;
  build(l, mid);
  rc[x] = sum + 1;
  build(mid + 1, r);
  up(x);
}
void insert(int x, int l, int r) {
  if (L <= l && r <= R) {
    add(x, w);
    return;
  }
  int mid = (l + r) >> 1;
  if (tag[x]) down(x);
  if (L <= mid) insert(lc[x], l, mid);
  if (R > mid) insert(rc[x], mid + 1, r);
  up(x);
}
int main() {
  n = read();
  build(1, n);
  m = read();
  for (int i = 1; i <= m; i++)
    L = read(), R = read(), w = read(), insert(1, 1, n), printf("%d\n", mx2[1]);
  return 0;
}
