#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
class BIT {
 public:
  long long* tree;
  long long* arr;
  int n;
  BIT(int nn) {
    n = nn;
    tree = new long long[n];
    arr = new long long[n];
    for (int i = 0; i < n; i++) {
      tree[i] = 0;
      arr[i] = 0;
    }
  }
  void update(int k, long long v) {
    arr[k] += v;
    tree[0] += v;
    while (k > 0) {
      tree[k] += v;
      k -= k & -k;
    }
  }
  long long query(int k) {
    if (k == 0) return 0;
    long long ans = tree[0];
    while (k < n) {
      ans -= tree[k];
      k += k & -k;
    }
    return ans;
  }
  long long query(int a, int b) { return query(b) - query(a); }
};
long long min(long long a, long long b) { return a > b ? b : a; }
int main() {
  int n, k, a, b, q;
  cin >> n >> k >> a >> b >> q;
  BIT bitb(n);
  BIT bita(n);
  for (int i = 0; i < q; i++) {
    int cmd;
    cin >> cmd;
    ;
    if (cmd == 1) {
      int d;
      cin >> d;
      ;
      int x;
      cin >> x;
      ;
      ;
      d--;
      bitb.update(d, min(b - bitb.arr[d], x));
      bita.update(d, min(a - bita.arr[d], x));
    } else {
      int d;
      cin >> d;
      ;
      d--;
      cout << bitb.query(d) + bita.query(d + k, n) << "\n";
    }
  }
}
