#include <bits/stdc++.h>
#pragma GCC optimize("O3")
const double PI = acos(-1.0);
using namespace std;
const int N = 1000009, M = 1000000;
int n, m, id[N];
set<int> s;
struct lex_compare {
  bool operator()(const pair<int, pair<int, int>>& x,
                  const pair<int, pair<int, int>>& y) const {
    if (x.first > y.first)
      return 1;
    else if (x.first == y.first) {
      if (x.second.first < y.second.first) return 1;
      return 0;
    } else
      return 0;
  }
};
set<pair<int, pair<int, int>>, lex_compare> q;
int add(int x) {
  int res;
  if (s.size() == 2) {
    res = 1;
    s.insert(1);
    q.insert({0, {0, 1}});
    q.insert({n - 1, {1, n + 1}});
  } else {
    auto it = q.begin();
    auto p = *it;
    q.erase(it);
    int idx;
    if (p.second.first == 0)
      idx = 1;
    else if (p.second.second == n + 1)
      idx = n;
    else
      idx = (p.second.first + p.second.second) / 2;
    res = idx;
    auto itt = s.lower_bound(idx);
    int r = *itt;
    itt--;
    int l = *itt;
    s.insert(idx);
    if (l == 0)
      q.insert({idx - 1, {0, idx}});
    else
      q.insert({(idx - l) / 2, {l, idx}});
    if (r == n + 1)
      q.insert({n - idx, {idx, r}});
    else
      q.insert({(r - idx) / 2, {idx, r}});
  }
  return res;
}
void remov(int x) {
  auto it = s.lower_bound(x);
  it++;
  int r = *it;
  it--, it--;
  int l = *it;
  it++;
  s.erase(it);
  if (l == 0)
    q.erase({x - 1, {0, x}});
  else
    q.erase({(x - l) / 2, {l, x}});
  if (r == n + 1)
    q.erase({n - x, {x, n + 1}});
  else
    q.erase({(r - x) / 2, {x, r}});
  if (l == 0 && r == n + 1)
    return;
  else if (l == 0)
    q.insert({r - 1, {0, r}});
  else if (r == n + 1)
    q.insert({n - l, {l, n + 1}});
  else
    q.insert({(r - l) / 2, {l, r}});
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  cin >> n >> m;
  s.insert(0);
  s.insert(n + 1);
  int t, x;
  for (int i = 1; i <= m; i++) {
    cin >> t >> x;
    if (t == 1)
      id[x] = add(x), cout << id[x] << endl;
    else
      remov(id[x]);
  }
  return 0;
}
