#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 1e5 + 7;
long long n, m, l;
long long a[MAXN];
long long ans = 0;
long long get() { return ans; }
long long tl[MAXN], tr[MAXN];
void upd(long long p, long long d) {
  if (a[p] <= l && a[p] + d > l) {
    if (p && a[p - 1] > l) {
      --ans;
    }
    if (p + 1 < n && a[p + 1] > l) {
      --ans;
    }
    ++ans;
  }
  a[p] += d;
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m >> l;
  for (long long i = 0; i < n; ++i) {
    long long x;
    cin >> x;
    upd(i, x);
  }
  for (long long i = 0; i < m; ++i) {
    long long t;
    cin >> t;
    if (t == 0) {
      cout << get() << '\n';
    } else {
      long long p, d;
      cin >> p >> d;
      --p;
      upd(p, d);
    }
  }
  return 0;
}
