#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200100;
int n, k, b, a, q;
int v1[MAXN], v2[MAXN];
long long bit1[MAXN], bit2[MAXN];
void update1(int id, int val);
void update2(int id, int val);
long long query1(int id);
long long query2(int id);
int main() {
  scanf("%d %d %d %d %d", &n, &k, &a, &b, &q);
  for (int i = 0; i < q; i++) {
    int aux;
    scanf("%d", &aux);
    if (aux == 1) {
      int aux1, aux2;
      scanf("%d %d", &aux1, &aux2);
      if (v1[aux1] < b) {
        update1(aux1, min(aux2, b - v1[aux1]));
        v1[aux1] = min(aux2 + v1[aux1], b);
      }
      if (v2[aux1] < a) {
        update2(aux1, min(aux2, a - v2[aux1]));
        v2[aux1] = min(aux2 + v2[aux1], a);
      }
    } else {
      int aux3;
      scanf("%d", &aux3);
      long long ans = 0;
      ans += query1(aux3 - 1) + query2(n) - query2(min(aux3 - 1 + k, MAXN - 1));
      printf("%lld\n", ans);
    }
  }
}
void update1(int id, int val) {
  while (id < MAXN) {
    bit1[id] += val;
    id += id & (-id);
  }
}
void update2(int id, int val) {
  while (id < MAXN) {
    bit2[id] += val;
    id += id & (-id);
  }
}
long long query1(int id) {
  long long ret = 0;
  while (id > 0) {
    ret += bit1[id];
    id -= id & (-id);
  }
  return ret;
}
long long query2(int id) {
  long long ret = 0;
  while (id > 0) {
    ret += bit2[id];
    id -= id & (-id);
  }
  return ret;
}
