Олимпиадный тренинг

Задача . D. Одномерный морской бой


Алиса и Боб любят играть в одномерный морской бой. Они играют на поле, имеющем вид строки из n квадратных клеточек (то есть на таблице 1 × n).

В начале игры Алиса в тайне от Боба расставляет на поле k кораблей, каждый из которых имеет вид прямоугольника 1 × a (то есть занимает последовательность из a подряд идущих клеток поля). Корабли не могут пересекаться и даже касаться друг друга.

После этого Боб делает последовательность «выстрелов». Он называет клетки поля, а Алиса сообщает, что клетка пуста («мимо»), либо что эта клетка принадлежит какому-либо кораблю («попал»).

Вот незадача! Похоже, Алиса любит фантазировать. Видимо, именно по этой причине на каждый ход Боба она отвечает «мимо».

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

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

В первой строке входных данных содержится три целых числа: n, k и a (1 ≤ n, k, a ≤ 2·105) — размер поля, количество кораблей и размер каждого из них. Гарантируется, что n, k и a такие, что на поле возможно расставить k кораблей размера a, что никакие два не пересекаются и не касаются.

Вторая строка содержит целое число m (1 ≤ m ≤ n) — количество ходов Боба.

Третья строка содержит m различных целых чисел x1, x2, ..., xm, где xi — номер клетки, по которой Боб произвёл i-й выстрел. Клетки нумеруются слева направо от 1 до n.

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

Выведите единственное целое число — номер такого первого хода Боба, после которого можно наверняка утверждать, что Алиса сказала неправду. Ходы Боба нумеруются от 1 до m в порядке их совершения. Если искомого хода не существует, то выведите «-1».


Примеры
Входные данныеВыходные данные
1 11 3 3
5
4 8 6 1 11
3
2 5 1 3
2
1 5
-1
3 5 1 3
1
3
1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя