Такси
Byteasar хочет отправиться на такси из города Bytehole в город Bytepit, который находится на расстоянии m километров от Bytehole. На пути из Bytehole в Bytepit, ровно в d километрах от Bytehole, расположена база с n такси, пронумерованных от 1 до n. Каждое такси номер i может проехать ровно x_i километров на своем топливе.
Byteasar может пересаживаться из одного такси в другое в любой момент. Все такси стартуют с базы, но возвращаться на нее не обязаны. Ваша задача — выяснить, сможет ли Byteasar добраться из Bytehole в Bytepit, и если это возможно, то какое минимальное количество такси потребуется для такой поездки.
Входные данные
Первая строка входного файла содержит три целых числа: m, d и n (1 ≤ d ≤ m ≤ 10^18, 1 ≤ n ≤ 500000), разделенные пробелами. Эти числа обозначают соответственно: расстояние от Bytehole до Bytepit, расстояние от Bytehole до базы такси и количество такси на базе. Вторая строка содержит n целых чисел, x_1, x_2, ..., x_n (1 ≤ x_i ≤ 10^18), также разделенные пробелами. Каждое число x_i указывает максимальное расстояние в километрах, которое может проехать i-е такси.
Выходные данные
Программа должна вывести одно целое число в стандартный вывод: минимальное количество такси, которое Byteasar должен использовать, чтобы добраться из Bytehole в Bytepit. Если добраться туда невозможно, программа должна вывести число 0.