#include <bits/stdc++.h>
using namespace std;
int L, b, f, casos;
int ocupado[1000000];
int puesto[1000000];
int main() {
  cin >> L >> b >> f >> casos;
  for (int cas = 1; cas <= casos; cas++) {
    int tipo, x;
    cin >> tipo >> x;
    if (tipo == 1) {
      int acum = 0;
      bool trobat = false;
      for (int i = 0; i < L and not trobat; i++) {
        if (not ocupado[i]) {
          acum++;
          if (i == acum - 1) {
            if ((i == L - 1 and acum >= x) or acum == x + f) {
              int pos = 0;
              puesto[cas] = pos;
              for (int j = 0; j < x; j++) ocupado[pos + j] = 1;
              trobat = true;
            }
          } else if (i == L - 1) {
            if (acum >= x + b) {
              int pos = i - acum + 1 + b;
              puesto[cas] = pos;
              for (int j = 0; j < x; j++) ocupado[pos + j] = 1;
              trobat = true;
            }
          } else if (acum == b + x + f) {
            int pos = i - f - x + 1;
            puesto[cas] = pos;
            for (int j = 0; j < x; j++) ocupado[pos + j] = 1;
            trobat = true;
          }
        } else {
          acum = 0;
        }
      }
      if (not trobat)
        cout << -1 << endl;
      else
        cout << puesto[cas] << endl;
    } else {
      int pos = puesto[x];
      while (ocupado[pos]) ocupado[pos++] = 0;
    }
  }
}
