#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 50005;
int n, m;
int MaxL[maxn << 2], MaxR[maxn << 2], Max[maxn << 2], col[maxn << 2];
#define lc o << 1
#define Lc lc, L, M
#define rc o << 1 | 1
#define Rc rc, M + 1, R
inline void maintain(int o, int L, int R)
{
int M = (L + R) >> 1;
MaxL[o] = (MaxL[lc] == M - L + 1 ? MaxL[lc] + MaxL[rc] : MaxL[lc]);
MaxR[o] = (MaxR[rc] == R - M ? MaxR[lc] + MaxR[rc] : MaxR[rc]);
Max[o] = max(max(Max[lc], Max[rc]), MaxR[lc] + MaxL[rc]);
}
inline void pushdown(int o, int L, int R)
{
if(col[o] != -1) {
int M = (L + R) >> 1;
col[lc] = col[o]; MaxL[lc] = MaxR[lc] = Max[lc] = col[o] * (M - L + 1);
col[rc] = col[o]; MaxL[rc] = MaxR[rc] = Max[rc] = col[o] * (R - M);
col[o] = -1;
}
}
int query(int o, int L, int R, int sz)
{
if(L == R) return L;
pushdown(o, L, R);
int M = (L + R) >> 1;
if(Max[lc] >= sz) { //madan ba Max da cheng MaxL le, ri le gou!!!
return query(Lc, sz);
} else if(MaxR[lc] + MaxL[rc] >= sz) {
return M - MaxR[lc] + 1;
} else {
return query(Rc, sz);
}
}
void update(int o, int L, int R, int ql, int qr, int v)
{
if(L == ql && qr == R) {
col[o] = v; MaxL[o] = MaxR[o] = Max[o] = v * (R - L + 1);
} else {
pushdown(o, L, R);
int M = (L + R) >> 1;
if(qr <= M) {
update(Lc, ql, qr, v);
} else if(ql > M) {
update(Rc, ql, qr, v);
} else {
update(Lc, ql, M, v);
update(Rc, M + 1, qr, v);
}
maintain(o, L, R);
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
scanf("%d%d", &n, &m);
memset(col, -1, sizeof(col));
col[1] = 1; MaxL[1] = MaxR[1] = Max[1] = n;
for(int i = 1; i <= m; ++i) {
int ty, x, d;
scanf("%d", &ty);
if(ty == 1) {
scanf("%d", &d);
if(Max[1] < d) {
puts("0");
} else {
x = query(1, 1, n, d);
update(1, 1, n, x, x + d - 1, 0);
printf("%d\n", x);
}
} else {
scanf("%d%d", &x, &d);
update(1, 1, n, x, x + d - 1, 1);
}
}
#ifndef ONLINE_JUDGE
fclose(stdin), fclose(stdout);
#endif
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxhbGdvcml0aG0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heG4gPSA1MDAwNTsKCmludCBuLCBtOwppbnQgTWF4TFttYXhuIDw8IDJdLCBNYXhSW21heG4gPDwgMl0sIE1heFttYXhuIDw8IDJdLCBjb2xbbWF4biA8PCAyXTsKCiNkZWZpbmUgbGMgbyA8PCAxCiNkZWZpbmUgTGMgbGMsIEwsIE0KI2RlZmluZSByYyBvIDw8IDEgfCAxCiNkZWZpbmUgUmMgcmMsIE0gKyAxLCBSCgppbmxpbmUgdm9pZCBtYWludGFpbihpbnQgbywgaW50IEwsIGludCBSKQp7CglpbnQgTSA9IChMICsgUikgPj4gMTsKCU1heExbb10gPSAoTWF4TFtsY10gPT0gTSAtIEwgKyAxID8gTWF4TFtsY10gKyBNYXhMW3JjXSA6IE1heExbbGNdKTsKCU1heFJbb10gPSAoTWF4UltyY10gPT0gUiAtIE0gPyBNYXhSW2xjXSArIE1heFJbcmNdIDogTWF4UltyY10pOwoJTWF4W29dID0gbWF4KG1heChNYXhbbGNdLCBNYXhbcmNdKSwgTWF4UltsY10gKyBNYXhMW3JjXSk7Cn0KCmlubGluZSB2b2lkIHB1c2hkb3duKGludCBvLCBpbnQgTCwgaW50IFIpCnsKCWlmKGNvbFtvXSAhPSAtMSkgewoJCWludCBNID0gKEwgKyBSKSA+PiAxOwoJCWNvbFtsY10gPSBjb2xbb107IE1heExbbGNdID0gTWF4UltsY10gPSBNYXhbbGNdID0gY29sW29dICogKE0gLSBMICsgMSk7CgkJY29sW3JjXSA9IGNvbFtvXTsgTWF4TFtyY10gPSBNYXhSW3JjXSA9IE1heFtyY10gPSBjb2xbb10gKiAoUiAtIE0pOwoJCWNvbFtvXSA9IC0xOwoJfQp9CgppbnQgcXVlcnkoaW50IG8sIGludCBMLCBpbnQgUiwgaW50IHN6KQp7CglpZihMID09IFIpIHJldHVybiBMOwoJcHVzaGRvd24obywgTCwgUik7CglpbnQgTSA9IChMICsgUikgPj4gMTsKCWlmKE1heFtsY10gPj0gc3opIHsgLy9tYWRhbiBiYSBNYXggZGEgY2hlbmcgTWF4TCBsZSwgcmkgbGUgZ291ISEhCgkJcmV0dXJuIHF1ZXJ5KExjLCBzeik7Cgl9IGVsc2UgaWYoTWF4UltsY10gKyBNYXhMW3JjXSA+PSBzeikgewoJCXJldHVybiBNIC0gTWF4UltsY10gKyAxOwoJfSBlbHNlIHsKCQlyZXR1cm4gcXVlcnkoUmMsIHN6KTsKCX0KfQoKdm9pZCB1cGRhdGUoaW50IG8sIGludCBMLCBpbnQgUiwgaW50IHFsLCBpbnQgcXIsIGludCB2KQp7CglpZihMID09IHFsICYmIHFyID09IFIpIHsKCQljb2xbb10gPSB2OyBNYXhMW29dID0gTWF4UltvXSA9IE1heFtvXSA9IHYgKiAoUiAtIEwgKyAxKTsKCX0gZWxzZSB7CgkJcHVzaGRvd24obywgTCwgUik7CgkJaW50IE0gPSAoTCArIFIpID4+IDE7CgkJaWYocXIgPD0gTSkgewoJCQl1cGRhdGUoTGMsIHFsLCBxciwgdik7CgkJfSBlbHNlIGlmKHFsID4gTSkgewoJCQl1cGRhdGUoUmMsIHFsLCBxciwgdik7CgkJfSBlbHNlIHsKCQkJdXBkYXRlKExjLCBxbCwgTSwgdik7CgkJCXVwZGF0ZShSYywgTSArIDEsIHFyLCB2KTsKCQl9CgkJbWFpbnRhaW4obywgTCwgUik7Cgl9Cn0KCmludCBtYWluKCkKewojaWZuZGVmIE9OTElORV9KVURHRQoJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCQoJc2NhbmYoIiVkJWQiLCAmbiwgJm0pOwoJbWVtc2V0KGNvbCwgLTEsIHNpemVvZihjb2wpKTsKCWNvbFsxXSA9IDE7IE1heExbMV0gPSBNYXhSWzFdID0gTWF4WzFdID0gbjsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbTsgKytpKSB7CgkJaW50IHR5LCB4LCBkOwoJCXNjYW5mKCIlZCIsICZ0eSk7CgkJaWYodHkgPT0gMSkgewoJCQlzY2FuZigiJWQiLCAmZCk7CgkJCWlmKE1heFsxXSA8IGQpIHsKCQkJCXB1dHMoIjAiKTsKCQkJfSBlbHNlIHsKCQkJCXggPSBxdWVyeSgxLCAxLCBuLCBkKTsKCQkJCXVwZGF0ZSgxLCAxLCBuLCB4LCB4ICsgZCAtIDEsIDApOwoJCQkJcHJpbnRmKCIlZFxuIiwgeCk7CgkJCX0KCQl9IGVsc2UgewoJCQlzY2FuZigiJWQlZCIsICZ4LCAmZCk7CgkJCXVwZGF0ZSgxLCAxLCBuLCB4LCB4ICsgZCAtIDEsIDEpOwoJCX0KCX0KCiNpZm5kZWYgT05MSU5FX0pVREdFCglmY2xvc2Uoc3RkaW4pLCBmY2xvc2Uoc3Rkb3V0KTsKI2VuZGlmCn0K