D. Парковка
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

В наши дни становится все труднее удачно припарковать свой автомобиль в городе. Представим себе отрезок улицы длиной в L метров, вдоль которого разрешена парковка. Водители должны ставить свои автомобили строго параллельно тротуару с правой стороны улицы (помните, что в стране авторов задач движение правостороннее!). Каждый водитель при парковке хочет оставить себе некоторый запас для маневрирования, поэтому водитель ищет такое место, что расстояние до сзади стоящей машины будет не меньше b метров, а до впереди стоящей — не меньше f метров (если сзади машины нет, то автомобиль можно ставить у самого края отрезка для парковки; то же самое верно для случая, когда спереди не припарковано машин). Введем ось координат вдоль тротуара. Пусть зона для парковки начинается в точке 0 и заканчивается в точке L. Водители едут в направлении увеличения координаты и ищут самое раннее место (с наименьшей возможной координатой), где они могут припарковать машину. В случае, если такого места не находится, водитель едет дальше в поисках счастья. Иногда некоторые машины покидают улицу и освобождают место для парковки. Считая, что на улице никогда не находятся две двигающиеся машины одновременно, напишите программу, которая по информации о водителях, приезжающих на улицу в целях парковки и уезжающих с нее, моделирует процесс и определяет для каждого автомобиля место, занятое им в зоне парковки.

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

В первой строке записаны три целых числа L, b и f (10 ≤ L ≤ 100000, 1 ≤ b, f ≤ 100). Во второй строке дано целое число n (1 ≤ n ≤ 100) — количество запросов к вашей программе. Каждый запрос описывается в отдельной строке и задается двумя числами. Первое число означает тип запроса. Если тип запроса равен 1, то в этом случае второе число означает длину очередного автомобиля (в метрах), который въезжает на улицу в поисках места для парковки. Если же тип запроса равен 2, то тогда второе число означает номер запроса (начиная с 1) такого, что автомобиль, чей приезд на парковку описывался запросом с этим номером, ее покидает. Гарантируется, что этот автомобиль в момент запроса типа 2 был припаркован. Длины автомобилей — это целые числа от 1 до 1000.

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

Для каждого запроса типа 1 в отдельной строке выведите число -1, если соответствующему автомобилю не нашлось места на парковке вдоль улицы. В противном случае выведите целое число, равное расстоянию от задней части автомобиля в его припаркованном положении до начала зоны парковки.

Примеры
Входные данные
30 1 2
6
1 5
1 4
1 5
2 2
1 5
1 4
Выходные данные
0
6
11
17
23
Входные данные
30 1 1
6
1 5
1 4
1 5
2 2
1 5
1 4
Выходные данные
0
6
11
17
6
Входные данные
10 1 1
1
1 12
Выходные данные
-1