#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000009;
int n, m;
struct Solution {
  map<int, set<int>> ranges;
  int s, e = -1;
  unordered_map<int, int> um;
  set<int> inds;
  Solution() : s(n) {}
  int solve(int i) {
    int first = inds.empty() ? n : *inds.begin() - 1,
        last = inds.empty() ? n : n - *inds.rbegin(),
        br = ranges.empty() ? 0 : ranges.rbegin()->first, j;
    if (first >= last && first >= br / 2)
      j = 1;
    else if (last > br / 2)
      j = n;
    else {
      auto it = ranges.rbegin();
      if (it != ranges.rend()) it++;
      int x = it == ranges.rend() || it->first / 2 != br / 2
                  ? n
                  : *it->second.begin();
      int s = min(*ranges.rbegin()->second.begin(), x);
      j = s + br / 2;
    }
    um[i] = j;
    if (inds.empty()) {
      inds.insert(j);
      return j;
    }
    if (j == 1) {
      int k = *inds.upper_bound(j);
      ranges[k - j].insert(j);
    } else if (j == n) {
      auto it = inds.lower_bound(j);
      it--;
      int k = *it;
      ranges[j - k].insert(k);
    } else {
      auto it = inds.lower_bound(j);
      int e = *it;
      it--;
      int s = *it;
      ranges[e - s].erase(s), ranges[j - s].insert(s), ranges[e - j].insert(j);
      if (ranges[e - s].empty()) ranges.erase(e - s);
    }
    inds.insert(j);
    return j;
  }
  void depart(int i) {
    int j = um[i];
    auto it = inds.upper_bound(j);
    int e = it == inds.end() ? -1 : *it, s = -1;
    it--;
    if (it != inds.begin()) {
      it--, s = *it;
    }
    if (s != -1) {
      ranges[j - s].erase(s);
      if (ranges[j - s].empty()) ranges.erase(j - s);
    }
    if (e != -1) {
      ranges[e - j].erase(j);
      if (ranges[e - j].empty()) ranges.erase(e - j);
    }
    if (s != -1 && e != -1) {
      ranges[e - s].insert(s);
    }
    inds.erase(j);
  }
  void print_inds() {
    for (int s : inds) printf("%d ", s);
    printf("\n");
  }
  void print_ranges() {
    for (auto& p : ranges) {
      printf("len=%d: ", p.first);
      for (int s : p.second) printf("%d ", s);
      printf("\n");
    }
  }
};
void print(vector<int>& nums) {
  for (auto num : nums) cout << num << " ";
  cout << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  Solution test;
  int t, id;
  while (m--) {
    cin >> t >> id;
    if (t == 1) {
      int x = test.solve(id);
      printf("%d\n", x);
    } else {
      test.depart(id);
    }
  }
}
