#include<bits/stdc++.h>
#pragma GCC target( "sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")
using namespace std;
#define int long long
#define y1 cheza
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int N=2e5+1000;
const int M=1e4;
const int mod=1e9+7;
const int INF=1e18;
const int dx[]={1,-1,0,0};
const int dy[]={0,0,-1,1};
const long double eps=1e-6;
int n,q;
int pos[N];
int tim=0;
set<int>s;
set<pair<int,int>>ans;
void add(int l,int r){
    if(r-l+1==2)return;
    int cur=(l+r)>>1ll;
    if(cur==l)return;
    ans.insert({cur-l,-cur});

}
void del(int l,int r){
    int cur=(l+r)>>1ll;
    
    ans.erase({cur-l,-cur});
}
void test(){
    cin>>n>>q;

    for(char t;q--;){
        cin>>t;
        if(t=='+'){
            if(s.size()==0){
                s.insert(1);
                pos[++tim]=1;
                cout<<1<<'\n';
            }
            else if(s.size()==1){
                auto x=*s.begin();
                if(abs(1-x)>=abs(x-n)){
                    s.insert(1);
                    pos[++tim]=1;
                    cout<<1<<'\n';
                    add(1,x);
                }
                else{
                    s.insert(n);
                    pos[++tim]=n;
                    cout<<n<<'\n';
                    add(x,n);
                }
            }
            else{

                auto [w,x]=(*ans.rbegin());
                x=abs(x);
                s.insert(x);
                auto to=s.lower_bound(x);
                --to;
                int l=*to;
                to++;
                to++;
                int r=*to;
                del(l,r);
                
                add(l,x);
                add(x,r);
                pos[++tim]=x;
                cout<<x<<'\n';
            }   
        }
        else{
            int y;
            cin>>y;
            y=pos[y];
            if(s.size()<=1){
                s.erase(y);
            }
            else{
                auto to=s.lower_bound(y);
                int l=-1,r=-1;
                if(y!=(*s.begin())){
                    to--;
                    l=*to;
                    del(l,y);
                    to++;
                }
                if(y!=(*s.rbegin())){
                    to++;
                    r=*to;
                    del(y,r);
                }
                s.erase(y);
                if(l!=-1&&r!=-1){
                    add(l,r);
                }
            }
            
        }
        // for(auto i:ans){
        //     cout<<i.first<<' '<<i.second<<'\n';
        // }
        // cout<<'\n';
    }
}


/*
1=1
2=4
4
3=8
5
4=13
6
5=19
6=26
*/

signed main(){
    // cout<<setprecision(12);
    // cout<<fixed;
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    // cout.tie(nullptr);
    long long t2=1;
    //  cin>>t2;
    for(int i=1;i<=t2;i++){
        test();
    }
    
    return 0;

}

