#include <bits/stdc++.h>
using namespace std;
const int N = 2000000;
int p[N];
int n, m;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> m;
  set<pair<int, pair<int, int> > > s;
  set<int> t;
  for (int i = 1; i <= m; i++) {
    int type, id;
    cin >> type >> id;
    if (type == 1) {
      if (s.size() == 0) {
        s.insert({0, {1, 1}});
        s.insert({2 - n - n, {2, n + n}});
        cout << 1 << endl;
        p[id] = 1;
        t.insert(1);
        t.insert(0);
        t.insert(n + n);
      } else {
        auto q = *s.begin();
        int x = (q.second.first + q.second.second - 1) / 2;
        s.erase(s.begin());
        int z1 = 0;
        int z2 = 0;
        if ((q.second.first - x) % 2) z1++;
        if ((x - q.second.second + 1) % 2) z2++;
        if (x != 1)
          s.insert({q.second.first - x - z1, {q.second.first, x}});
        else {
          t.erase(q.second.first - 1);
          t.insert(0);
          s.insert({0, {1, 1}});
        }
        if (x != n)
          s.insert({x - q.second.second + 1 - z2, {x + 1, q.second.second}});
        else if (x == n) {
          s.insert({0, {n + 1, n + 1}});
          t.insert(n + 1);
          t.erase(q.second.second);
        }
        p[id] = x;
        t.insert(x);
        cout << x << endl;
      }
    } else {
      if (t.size() == 3) {
        while (!t.empty()) t.erase(t.begin());
        while (!s.empty()) s.erase(s.begin());
        continue;
      }
      int x = p[id];
      auto l = t.upper_bound(x);
      auto r = l;
      l--;
      l--;
      int R = *r;
      int L = *l;
      int z1 = 0;
      int z2 = 0;
      if ((L + 1 - x) % 2) z1++;
      if ((x + 1 - R) % 2) z2++;
      s.erase({L + 1 - x - z1, {L + 1, x}});
      s.erase({x + 1 - R - z2, {x + 1, R}});
      int z = 0;
      if ((R - L - 1) % 2) z++;
      if (R > n) {
        t.erase(R);
        s.insert({L + L - n - n, {L + 1, n + n - L + 1}});
        t.insert(n + n - L + 1);
      } else if (L < 1) {
        t.erase(L);
        s.insert({2 - R - R, {3 - R, R}});
        t.insert(2 - R);
      } else
        s.insert({L + 1 - R - z, {L + 1, R}});
      t.erase(x);
    }
  }
}
