#include <bits/stdc++.h>
using namespace std;
int n,x,y,L,tmp,p;
bool f[100005];
struct node{int l,r;}a[105];
int main()
{
cin>>L>>x>>y;
cin>>n;
int l=0,r=0;
bool ff=false,fff=false;
for(int i=1;i<=n;i++)
{
cin>>tmp>>p;
if(tmp%2)
{
l=0,r=0;
ff=false;
fff=false;
while(r<=L)
{
if(f[r]) l=r+1;
if(l==0&&r+1>=y+p)
{
cout<<0<<endl;
fff=true;
break;
}
else if(r-l+1>=x+y+p)
{
cout<<l+x<<endl
ff=true;
break;
}
else r++;
}
if(ff)
{
a[i].l=l+x;
a[i].r=r-y;
for(int j=l+x;j<=r-y;j++) f[j]=true;
}
else if(fff)
{
a[i].l=0;
a[i].r=r-y;
for(int j=0;j<=r-y;j++) f[j]=true;
}
else cout<<-1<<endl;
}
else for(int j=a[p].l;j<=a[p].r;j++) f[j]=false;
}
return 0;
}