Задача №115304. Места в метро
Василий очень любит сидеть в телефоне во время поездок в метро, и очень не любит, когда кто-то из соседей видит, чем он занимается в интернете. Вася уверен, что не единственный страдает от такой проблемы, поэтому попросил вас помочь всем любителям посидеть в одиночестве.
Рассмотрим вагон метро, в котором есть один ряд из \(n\) мест, пронумерованных от \(1\) до \(n\), изначально все места свободны. Поступает \(k\) последовательных запросов. Запросы бывают двух типов:
- «\(-x\)». Ушёл пассажир, который вошёл \(x\)-м. Гарантируется, что такой пассажир есть в вагоне.
- «\(+\)». Пришел новый пассажир. Гарантируется, что есть хотя бы одно свободное место.
На каждый запрос второго типа следует вывести такой номер свободного места, что расстояние до ближайшего занятого — максимально. Если таких мест несколько, следует вывести место с минимальным номером. Начиная со следующего запроса это место считается занятым, до тех пор, пока его не освободят.
В первой строке заданы два целых числа \(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