#include "bits/stdc++.h" 
#define F first
#define S second
#define ALL(a) a.begin() , a.end()

#define OK  cout << "---------------------------OK-----------------------" << endl;
#define deb(x) cout << #x  << " = " << x << endl;
#define debv(x) cout << #x << " : " ; for(int i : x) cout << i << " "  ; cout << endl;

#define endl '\n'
#define int long long
using namespace std ;
const int N =  1e5 + 7;	
const int INF = 1e9;
const int mod = 1e9 + 7 ;
const double eps = 1e-9 ;
const int dx[4]  = { 0 , 0 , 1 , -1} , dy[4] = {1 , -1 , 0 , 0}  ;
using namespace std;

long long n,m, place[N];
set<long long> st ;
set<pair<long long,long long>> best;
void delete_best(long long l , long long r){
	long long dis = r - l - 1;
	if(dis % 2 == 0){
		if(dis == 0)
			return ;
		best.erase({dis/2 - 1, -(l + dis/2 )});
		best.erase({dis/2 - 1, -(l + dis/2 + 1)});
	}
	else{
		best.erase({dis/2, -(l + dis/2 + 1)});
	}
}
void add_best(long long l , long long r){
	long long dis = r - l - 1;
	if(dis % 2 == 0){
		if(dis == 0)
			return ;
		best.insert({dis/2 - 1, -(l + dis/2)});
		best.insert({dis/2 - 1, -(l + dis/2 + 1)});
	}
	else{
		best.insert({dis/2, -(l + dis/2  + 1)});
	}
}
void add(long long x){
	long long l, r;
	l = *prev(st.lower_bound(x)), r = *st.upper_bound(x);
	delete_best(l ,r);
	add_best(l, x);
	add_best(x, r);
	st.insert(x);
}
long long find(){
	return -(*best.rbegin()).S;
}

void del(long long x ){
	long long l, r;
	l = *prev(st.lower_bound(x)), r = *st.upper_bound(x);
	delete_best(l ,x);
	delete_best(x ,r);
	add_best(l, r);
	st.erase(x);
}
signed main(){
	cin >> n >> m;
	st.insert(0);
	st.insert(n + 1);
	add_best(0,n + 1);
	int count = 0;
	for(int i =1 ; i <= m; i++){
		char c;
		cin >> c;
		if(c == '+'){
			count++;
			long long ans = find();
			if(st.size() == 2){
				ans = 1;
			}
			else if(st.size() == 3){
				long long wolf = *st.upper_bound(0);
				if(wolf > n/ 2 + n % 2)
					ans = 1;
				else
					ans = n;
			}
			add(ans);
			place[count] = ans;
			cout  << ans << endl;
		}
		else{
			long long x;
			cin >> x;
			long long id = place[x];
			del(id);
		}
	}
}