class Metro:
    def __init__(self, n):
        self.n = n
        self.seats = [0] * n

    def find_seat(self):
        max_distance = 0
        seat_number = -1

        # Ищем свободное место с максимальным расстоянием до ближайшего занятого места
        for i in range(self.n):
            if self.seats[i] == 0:
                left = right = 0

                # Находим расстояние до ближайшего занятого места слева
                j = i - 1
                while j >= 0 and self.seats[j] == 0:
                    left += 1
                    j -= 1

                # Находим расстояние до ближайшего занятого места справа
                j = i + 1
                while j < self.n and self.seats[j] == 0:
                    right += 1
                    j += 1

                # Выбираем место с максимальным расстоянием и минимальным номером
                distance = min(left, right)
                if distance > max_distance:
                    max_distance = distance
                    seat_number = i

        # Занимаем выбранное место
        self.seats[seat_number] = 1

        return seat_number + 1

    def process_requests(self, requests):
        results = []

        for request in requests:
            if request[0] == "-":
                # Обрабатываем запрос "−x", освобождаем место x
                x = int(request[1:])
                self.seats[x - 1] = 0
            elif request[0] == "+":
                # Обрабатываем запрос "+", ищем свободное место для нового пассажира
                seat_number = self.find_seat()
                results.append(seat_number)

        return results


# Чтение входных данных
n, k = map(int, input().split())
requests = [input() for _ in range(k)]

# Создание объекта Metro и обработка запросов
metro = Metro(n)
output = metro.process_requests(requests)

# Вывод результатов
for result in output:
    print(result)