#include <bits/stdc++.h>
using namespace std;
const int MAX = 200001;
struct FenwickTree {
  int n;
  int bit[MAX];
  FenwickTree(int n) {
    this->n = n + 1;
    memset(bit, 0, sizeof(bit));
  }
  int sum(int r) {
    int soma = 0;
    while (r > 0) {
      soma += bit[r];
      r -= (r & -r);
    }
    return soma;
  }
  int sum(int l, int r) { return sum(r) - sum(l - 1); }
  void add(int index, int val) {
    while (index < n) {
      bit[index] += val;
      index += (index & -index);
    }
  }
};
int main() {
  int n, k, a, b, q;
  cin >> n >> k >> a >> b >> q;
  int valuesAntes[n + 1];
  int valuesDepois[n + 1];
  memset(valuesAntes, 0, sizeof(valuesAntes));
  memset(valuesDepois, 0, sizeof(valuesDepois));
  FenwickTree antes = FenwickTree(n);
  FenwickTree depois = FenwickTree(n);
  while (q--) {
    int type, d, val;
    cin >> type >> d;
    if (type == 1) {
      cin >> val;
      int aux1 = min(val, (b - valuesAntes[d]));
      int aux2 = min(val, (a - valuesDepois[d]));
      valuesAntes[d] += aux1;
      valuesDepois[d] += aux2;
      antes.add(d, aux1);
      depois.add(d, aux2);
    } else {
      int resp = 0;
      resp += antes.sum(d - 1);
      resp += depois.sum(d + k, n);
      cout << resp << endl;
    }
  }
  return 0;
}
