EduBrick

C. Заправки: где именно

2000 мс · 256 МБ · всё или ничего

Машина едет из точки 00 в точку dd, на полном баке проезжает kk километров, в начале бак полон. На дороге nn заправок в точках s1<s2<⋯<sns_1 < s_2 < \dots < s_n.

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

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

Формат ввода

Первая строка содержит числа dd, kk и nn (1≤d,k≤1091 \le d, k \le 10^9, 0≤n≤1050 \le n \le 10^5).

Вторая строка содержит nn чисел sis_i в порядке возрастания, 0<si<d0 < s_i < d. При n=0n = 0 вторая строка пуста.

Формат вывода

Если доехать нельзя, выведите −1-1.

Иначе в первой строке выведите количество остановок, а во второй — номера заправок в порядке движения. Если остановок нет, вторая строка пуста.

Примеры

ввод
100 20 2
1 50
вывод
-1
Войдите, чтобы отправлять решения.