#include <bits/stdc++.h>
using namespace std;
bool home = 1;
signed realMain();
signed main() {
  home = 0;
  if (home) {
    freopen("tony_stark", "r", stdin);
  } else {
    ios::sync_with_stdio(0);
    cin.tie(0);
  }
  realMain();
}
const long long N = (long long)3e5 + 7;
long long n, initial[N];
long long dif[N];
long long suf[4 * N];
long long pre[4 * N];
long long ret[4 * N];
long long sgn(long long i) {
  i = dif[i];
  if (i > 0) {
    return +1;
  }
  if (i < 0) {
    return -1;
  }
  return 0;
}
void join(long long v, long long tl, long long tr) {
  long long tm = (tl + tr) / 2;
  ret[v] = max(ret[2 * v], ret[2 * v + 1]);
  pre[v] = pre[2 * v];
  suf[v] = suf[2 * v + 1];
  if (sgn(tm) != 0 && sgn(tm + 1) != 0 && sgn(tm) >= sgn(tm + 1)) {
    ret[v] = max(ret[v], suf[2 * v] + pre[2 * v + 1]);
    if (pre[v] == (tm - tl + 1)) {
      pre[v] += pre[2 * v + 1];
    }
    if (suf[v] == (tr - tm)) {
      suf[v] += suf[2 * v];
    }
  }
}
void build(long long v, long long tl, long long tr) {
  if (tl == tr) {
    suf[v] = pre[v] = ret[v] = (sgn(tl) != 0);
  } else {
    long long tm = (tl + tr) / 2;
    build(2 * v, tl, tm);
    build(2 * v + 1, tm + 1, tr);
    join(v, tl, tr);
  }
}
void upd(long long v, long long tl, long long tr, long long i) {
  if (tr < i || i < tl) {
    return;
  }
  if (tl == tr) {
    suf[v] = pre[v] = ret[v] = (sgn(tl) != 0);
  } else {
    long long tm = (tl + tr) / 2;
    upd(2 * v, tl, tm, i);
    upd(2 * v + 1, tm + 1, tr, i);
    join(v, tl, tr);
  }
}
signed realMain() {
  cin >> n;
  for (long long i = 1; i <= n; i++) {
    cin >> initial[i];
  }
  n--;
  if (n == 0) {
    long long q;
    cin >> q;
    for (long long i = 1; i <= q; i++) {
      cout << "1\n";
    }
    return 0;
  }
  for (long long i = 1; i <= n; i++) {
    dif[i] = initial[i + 1] - initial[i];
  }
  build(1, 1, n);
  long long q;
  cin >> q;
  while (q--) {
    long long l, r, x;
    cin >> l >> r >> x;
    if (l >= 1) {
      dif[l - 1] += x;
      upd(1, 1, n, l - 1);
    }
    if (r <= n) {
      dif[r] -= x;
      upd(1, 1, n, r);
    }
    cout << ret[1] + 1 << "\n";
  }
  return 0;
}
