import heapq

n, k = map(int, input().split())
free_seats = []  # Приоритетная очередь для свободных мест
distances = []  # Приоритетная очередь для расстояний до ближайших занятых мест

# Инициализация начальных данных
heapq.heappush(free_seats, 1)
heapq.heappush(distances, (-1, 1))

for _ in range(k):
    query = input()
    if query == '+':
        # Запрос на добавление нового пассажира
        distance, seat = heapq.heappop(distances)
        distance = -distance  # Преобразуем обратно в положительное значение
        print(seat)  # Выводим номер места, куда сядет пассажир
        if seat > 1:
            # Обновляем информацию о левом соседе
            left_dist = (seat - 1) // 2
            heapq.heappush(distances, (-left_dist, seat - 1))
        if seat < n:
            # Обновляем информацию о правом соседе
            right_dist = (n - seat) // 2
            heapq.heappush(distances, (-right_dist, seat + 1))
    else:
        # Запрос на освобождение места
        seat_to_free = int(query[1:])
        # Место считается освобожденным, убираем его из приоритетных очередей
        free_seats.remove(seat_to_free)
        heapq.heapify(free_seats)
        if seat_to_free > 1:
            # Обновляем информацию о левом соседе
            left_dist = (seat_to_free - 1) // 2
            heapq.heappush(distances, (-left_dist, seat_to_free - 1))
        if seat_to_free < n:
            # Обновляем информацию о правом соседе
            right_dist = (n - seat_to_free) // 2
            heapq.heappush(distances, (-right_dist, seat_to_free + 1))
