#include <bits/stdc++.h>
using namespace std;
struct fastIO {
  fastIO() {}
};
void no() {
  cout << "NO";
  exit(0);
}
void yes() {
  cout << "YES";
  exit(0);
}
const int MAXN = 1e6 * 2;
long long n, x, a[MAXN], b[MAXN], m, l, ans, y, z;
int main() {
  if (0) cerr << fixed << setprecision(20);
  fastIO();
  cin >> n >> m >> l;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) {
    if (a[i] > l) {
      if (!x) {
        x++;
        b[i]++;
        ans++;
      }
    } else if (x) {
      b[i - 1]++;
      x = 0;
    }
  }
  for (int i = 0; i < m; i++) {
    cin >> x;
    if (x) {
      cin >> y >> z;
      y--;
      if (a[y] > l) continue;
      a[y] += z;
      if (0) cerr << endl;
      if (y && a[y] > l && b[y - 1] && b[y + 1]) {
        ans--;
      } else if (a[y] > l) {
        if ((y && b[y - 1]) || b[y + 1]) {
          b[y]++;
        } else {
          ans++;
          b[y]++;
        }
      }
    } else {
      cout << ans << endl;
    }
  }
  return 0;
}
