#include <bits/stdc++.h>
using namespace std;
int n, k, x, y;
struct node {
  int L, R, e;
  long long int Lsum, Rsum, Ls, Rs;
  int mid() { return (L + R) / 2; }
} a[200005 * 4];
void BuildTree(int r, int L, int R) {
  a[r].L = L;
  a[r].R = R;
  a[r].e = 0;
  a[r].Lsum = 0;
  a[r].Rsum = 0;
  a[r].Ls = 0;
  a[r].Rs = 0;
  if (L == R) return;
  BuildTree(r << 1 | 1, L, a[r].mid());
  BuildTree(r << 1, a[r].mid() + 1, R);
  a[r].Lsum = a[r << 1 | 1].Lsum + a[r << 1].Lsum;
  a[r].Rsum = a[r << 1 | 1].Rsum + a[r << 1].Rsum;
  a[r].Ls = a[r << 1 | 1].Ls + a[r << 1].Ls;
  a[r].Rs = a[r << 1 | 1].Rs + a[r << 1].Rs;
}
void Update(int r, int L, int v) {
  if (a[r].L == a[r].R && a[r].L == L) {
    int kk = a[r].e;
    a[r].e += v;
    if (a[r].e >= y && kk < y) {
      a[r].Lsum++;
      a[r].Ls -= kk;
    }
    if (a[r].e >= x && kk < x) {
      a[r].Rs -= kk;
      a[r].Rsum++;
    }
    if (a[r].e < y) a[r].Ls = a[r].e;
    if (a[r].e < x) a[r].Rs = a[r].e;
    return;
  }
  if (L > a[r].mid())
    Update(r << 1, L, v);
  else
    Update(r << 1 | 1, L, v);
  a[r].Lsum = a[r << 1 | 1].Lsum + a[r << 1].Lsum;
  a[r].Rsum = a[r << 1 | 1].Rsum + a[r << 1].Rsum;
  a[r].Ls = a[r << 1 | 1].Ls + a[r << 1].Ls;
  a[r].Rs = a[r << 1 | 1].Rs + a[r << 1].Rs;
}
long long int Qurry(int r, int L, int R, int b) {
  if (L > R) return 0;
  if (a[r].L == L && a[r].R == R) {
    if (b == 1)
      return a[r].Lsum * y + a[r].Ls;
    else if (b == 2)
      return a[r].Rsum * x + a[r].Rs;
  }
  if (L > a[r].mid())
    return Qurry(r << 1, L, R, b);
  else if (R <= a[r].mid())
    return Qurry(r << 1 | 1, L, R, b);
  else {
    long long a1 = Qurry(r << 1 | 1, L, a[r].mid(), b);
    long long a2 = Qurry(r << 1, a[r].mid() + 1, R, b);
    return a1 + a2;
  }
}
int main() {
  int q;
  while (scanf("%d", &n) != EOF) {
    memset(a, 0, sizeof(0));
    int u, v;
    BuildTree(1, 1, n);
    scanf("%d %d %d %d", &k, &x, &y, &q);
    while (q--) {
      int kk;
      scanf("%d", &kk);
      if (kk == 1) {
        scanf("%d %d", &u, &v);
        Update(1, u, v);
      } else {
        scanf("%d", &u);
        long long int sum1 = Qurry(1, 1, u - 1, 1);
        long long int sum2 = Qurry(1, u + k, n, 2);
        printf("%lld\n", sum1 + sum2);
      }
    }
  }
  return 0;
}
