#include <bits/stdc++.h>
using namespace std;
const int N = 500000;
long long t[N * 4], tr[N * 4], tl[N * 4];
long long a[N], d[N];
inline long long zn(long long x) {
  if (x < 0) return -1;
  if (x == 0) return 0;
  return 1;
}
void add(int v, int l, int r, int i, long long delt) {
  if (l == r) {
    d[i] += delt;
    if (d[i] != 0) {
      tr[v] = 1;
      tl[v] = 1;
      t[v] = 1;
    } else {
      tr[v] = 0;
      tl[v] = 0;
      t[v] = 0;
    }
    return;
  }
  int ir = (v << 1) ^ 1;
  int il = (v << 1);
  int c = (l + r) >> 1;
  if (i <= c)
    add(il, l, c, i, delt);
  else
    add(ir, c + 1, r, i, delt);
  t[v] = max(t[il], t[ir]);
  tl[v] = tl[il];
  tr[v] = tr[ir];
  if (zn(d[c]) >= zn(d[c + 1])) {
    t[v] = max(t[v], tr[il] + tl[ir]);
    if (tl[il] == c - l + 1) {
      tl[v] = max(tl[il] + tl[ir], tl[v]);
    }
    if (tr[ir] == r - c) {
      tr[v] = max(tr[ir] + tr[il], tr[v]);
    }
  }
  t[v] = max(max(tl[v], tr[v]), t[v]);
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%I64d", &a[i]);
  }
  if (n == 1) {
    int q;
    scanf("%d", &q);
    while (q--) {
      int l, r;
      long long delt;
      scanf("%d%d%I64d", &l, &r, &delt);
      printf("1\n");
    }
    return 0;
  }
  n--;
  for (int i = 1; i <= n; i++) {
    add(1, 1, n, i, a[i + 1] - a[i]);
  }
  int q;
  scanf("%d", &q);
  while (q--) {
    int l, r;
    long long delt;
    scanf("%d%d%I64d", &l, &r, &delt);
    l--;
    if (l > 0) add(1, 1, n, l, delt);
    add(1, 1, n, r, -delt);
    printf("%I64d\n", t[1] + 1LL);
  }
  return 0;
}
