Задача №115304. Места в метро

Василий очень любит сидеть в телефоне во время поездок в метро, и очень не любит, когда кто-то из соседей видит, чем он занимается в интернете. Вася уверен, что не единственный страдает от такой проблемы, поэтому попросил вас помочь всем любителям посидеть в одиночестве.

Рассмотрим вагон метро, в котором есть один ряд из \(n\) мест, пронумерованных от \(1\) до \(n\), изначально все места свободны. Поступает \(k\) последовательных запросов. Запросы бывают двух типов:

  1. «\(-x\)». Ушёл пассажир, который вошёл \(x\)-м. Гарантируется, что такой пассажир есть в вагоне.
  2. «\(+\)». Пришел новый пассажир. Гарантируется, что есть хотя бы одно свободное место.

На каждый запрос второго типа следует вывести такой номер свободного места, что расстояние до ближайшего занятого — максимально. Если таких мест несколько, следует вывести место с минимальным номером. Начиная со следующего запроса это место считается занятым, до тех пор, пока его не освободят.

Входные данные

В первой строке заданы два целых числа \(n\) и \(k\) — количество мест и количество запросов (\(1 \leq n \leq 10^{18}\); \(1 \leq k \leq 10^5\)). В последующих \(k\) строках заданы запросы, по одному на каждой строке.

Выходные данные

Для каждого запроса «\(+\)» выведите номер места, куда сядет соответствующий пассажир.

Примеры
Входные данные
5 9
+
-1
+
+
+
+
-4
+
+
Выходные данные
1
1
5
3
2
3
4
Входные данные
5 8
+
+
+
+
+
-4
-3
+
Выходные данные
1
5
3
2
4
2
Сдать: для сдачи задач необходимо войти в систему