//#include <bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
#define ent "\n"
#define int long long
#define f first
#define s second

const int maxn = 2e5 + 100;
const int inf = (int)1e9 + 100;
const ll INF = (ll)1e18;
const int MOD = 1e9 + 7;
const int maxl = 20;
const ll P = 31;

set<pair<int,int>> s , t;
set<int> st;
int T[maxn];
ll n, m, k;

void del(int x){
    pair<int,int> p=*t.lower_bound({x,0});
    t.erase(p);
    int l=p.s,r=p.f;
    s.erase({-((r-l)/2),l});
    st.insert(x);
    if(x!=l){
        t.insert({x-1,l});
        s.insert({-((x-l-1)/2),l});
    }
    if(x!=r){
        t.insert({r,x+1});
        s.insert({-((r-x-1)/2),x+1});
    }
}


void add(int x){
    int l=x,r=x;
    auto it=t.lower_bound({x,0});
    st.erase(x);
    if(it!=t.end() && it->s==x+1){
        r=it->f;
        s.erase({-((r-x-1)/2),x+1});
        t.erase(it);
    }
    it=t.lower_bound({x,0});
    if(it!=t.begin()){
        it--;
        if(it->f==x-1){
            l=it->s;
            s.erase({-((x-l-1)/2),l});
            t.erase(it);
        }
    }
    s.insert({-((r-l)/2),l});
    t.insert({r,l});
}

void test(){
    cin>>n>>m;
    s.insert({-((n-1)/2),1});
    t.insert({n,1});
    int last=0;
    while(m--){
        char c;
        int x;
        cin>>c;
        if(c=='+'){
            last++;
            pair<int,int> p=*s.begin();
            int l=p.s,r;
            auto it=*t.lower_bound({l,l});
            r=it.f;
            int x = -1,y= -1;
            if(st.size()==0){
                T[last]=1;
                cout<<"1\n";
                del(1);
                continue;
            }
            x=*st.begin()-2;
            y=n-*st.rbegin()-1;
            int mid=(l+r)/2;
            if((r-l)/2>x && y<=(r-l)/2){
                del(mid);
                T[last]=mid;
                cout<<mid<<ent;
            }
            else if((r-l)/2<y && x<y){
                del(n);
                T[last]=n;
                cout<<n<<ent;
            }
            else{
                T[last]=1;
                cout<<"1\n";
                del(1);
            }
        }
        else{
            cin>>x;
            x=T[x];
            add(x);
        }
    }
}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    int t; t = 1;
    while(t--) test();
}
