#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
const long long INF = 1e18 + 1LL;
const double Pi = acos(-1.0);
const int N = 1e6 + 10, M = 2e5 + 20, mod = 1e9 + 7, inf = 2e9;
int ids[N], L[N], R[N], mx[N], lmx[N], rmx[N], n, m;
void push_up(int i, int ll, int rr) {
  lmx[i] = lmx[i << 1];
  if (lmx[i] == ((ll + rr) >> 1) - ll + 1) lmx[i] += lmx[i << 1 | 1];
  rmx[i] = rmx[i << 1 | 1];
  if (rmx[i] == rr - ((ll + rr) >> 1)) rmx[i] += rmx[i << 1];
  mx[i] = max(max(mx[i << 1], mx[i << 1 | 1]),
              (rmx[i << 1] + lmx[i << 1 | 1] + 1) >> 1);
  mx[i] = max(mx[i], max((lmx[i] + 1) >> 1, (rmx[i] + 1) >> 1));
  L[i] = rr;
  if ((lmx[i] + 1) >> 1 == mx[i]) L[i] = ll, R[i] = lmx[i] + ll - 1;
  if (((rmx[i] + 1) >> 1) == mx[i] && L[i] >= rr - rmx[i] + 1)
    L[i] = rr - rmx[i] + 1, R[i] = rr;
  if (lmx[i << 1 | 1] && rmx[i << 1] &&
      ((lmx[i << 1 | 1] + rmx[i << 1] + 1) >> 1) == mx[i] &&
      L[i] >= ((ll + rr) >> 1) - rmx[i << 1] + 1)
    L[i] = ((ll + rr) >> 1) - rmx[i << 1] + 1,
    R[i] = ((ll + rr) >> 1) + 1 + lmx[i << 1 | 1] - 1;
  if (mx[i] == mx[i << 1] && L[i] >= L[i << 1])
    L[i] = L[i << 1], R[i] = R[i << 1];
  if (mx[i] == mx[i << 1 | 1] && L[i] >= L[i << 1 | 1])
    L[i] = L[i << 1 | 1], R[i] = R[i << 1 | 1];
}
void build(int i, int ll, int rr) {
  L[i] = ll;
  R[i] = rr;
  lmx[i] = rr - ll + 1;
  rmx[i] = lmx[i];
  mx[i] = (rr - ll + 1 + 1) / 2;
  if (ll == rr) {
    return;
  }
  build(i << 1, ll, ((ll + rr) >> 1)),
      build(i << 1 | 1, ((ll + rr) >> 1) + 1, rr);
}
void update(int i, int ll, int rr, int pos, int v) {
  if (ll == rr && rr == pos) {
    mx[i] = (v + 1) / 2;
    if (!v)
      L[i] = inf, R[i] = -inf, lmx[i] = 0, rmx[i] = 0;
    else
      L[i] = ll, R[i] = rr, lmx[i] = 1, rmx[i] = 1;
    return;
  }
  if (pos <= ((ll + rr) >> 1))
    update(i << 1, ll, ((ll + rr) >> 1), pos, v);
  else
    update(i << 1 | 1, ((ll + rr) >> 1) + 1, rr, pos, v);
  push_up(i, ll, rr);
}
int main() {
  int op, id;
  scanf("%d%d", &n, &m);
  build(1, 1, n);
  for (int i = 1; i <= m; ++i) {
    scanf("%d%d", &op, &id);
    if (op == 1) {
      int pos;
      int now = lmx[1];
      int pre = rmx[1];
      if (now == 0 && pre == 0)
        now = -1;
      else {
        if (now >= pre)
          pos = 1;
        else
          pos = n;
        now = max(now, pre);
      }
      if (now < mx[1] || (now == mx[1] && pos >= L[1] + mx[1] - 1))
        pos = L[1] + mx[1] - 1;
      printf("%d\n", pos);
      ids[id] = pos;
      update(1, 1, n, pos, 0);
    } else {
      update(1, 1, n, ids[id], 1);
      ids[id] = 0;
    }
  }
  return 0;
}
