Задача №113536. Очередь

XIII Городская олимпиада школьников по информатике им. В. Д. Лелюха

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

Он знает, что окно начинает работать спустя t s минут после полуночи, а закрывается спустя t f после полуночи (то есть ( t f - 1) — последняя минута, когда окно еще работает). На прием документов от одного человека тратится ровно t минут. Если до закрытия окна остается меньше t минут, то обслуживание новых посетителей прекращается.

Ещё Вася знает, что завтра придет ровно n посетителей. Для каждого посетителя Вася знает время, в которое он придет. Каждый приходящий посетитель занимает очередь в окно, и не уходит, пока его не обслужат (или пока окно по приему документов не закроется). Если в момент прихода посетителя окно свободно (в частности, если в этот же момент закончили обслуживать предыдущего посетителя), то пришедшего посетителя начинают сразу же обслуживать.

Времена приходов всех посетителей положительны, Вася, если надо, может прийти и в нулевой момент времени (т. е. ровно в полночь), однако он не может прийти в момент времени, выражающийся нецелым числом минут после полуночи. Если Вася приходит одновременно с несколькими посетителями, то он пропускает их вперед и встает в конец очереди.

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

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

В первой строке входных данных находятся три положительных целых числа: время открытия окна t s , время закрытия окна t f и время обслуживания одного человека t . В следующей строке дано одно целое число n — количество посетителей ( 0 ≤ n ≤ 100 000 ). В третьей строке перечислены положительные целые числа в порядке неубывания — времена, в которые посетители приходят в паспортный стол.

Все времена заданы в минутах и не превосходят 10 12 ; гарантируется, что t s < t f . Также гарантируется, что Вася может прийти так, чтобы успеть подать документы до закрытия окна.

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

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

Примечание

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

Во втором примере, чтобы успеть подать документы, Васе надо прийти раньше всех.

Примечание

50 баллов — (0 ≤ n ≤ 1 000) .

100 баллов — (0 ≤ n ≤ 100 000) .

Примеры
Входные данные
10 15 2
2
10 13
Выходные данные
12
Входные данные
8 17 3
4
3 4 5 8
Выходные данные
2
Сдать: для сдачи задач необходимо войти в систему