Стив пытался найти логику в действиях менеджеров Quantum Artificial Intelligence. Впрочем, тайное уже становилось явным. Компания Quantum Artificial Intelligence хотела стать единственным партнёром Smart Industrial Robots. Однако Smart Industrial Robots настаивала на том, что в компании-партнёре должно работать достаточное количество квалифицированных сотрудников. Если считать и сотрудников Quantum Artificial Intelligence, и сотрудников Gadget Operating System, необходимая численность набирается. А вот квалификацию требуется подтверждать экзаменом.
Для каждого сотрудника известно количество дней di, в течение которых он может подготовиться к экзамену, чтобы сдать его блестяще на следующий день после завершения подготовки. Но если знания не применяются на практике, они постепенно утрачиваются. Если сотрудник будет сдавать экзамен не на следующий день, а через день по завершении подготовки, то сдаст его на балл ниже; через два дня — на два балла ниже и т.д. Квалификация считается подтверждённой, если сотрудник сдал экзамен не хуже, чем на m баллов ниже идеальной оценки.
Менеджеры Quantum Artificial Intelligence хотят, чтобы все сотрудники немедленно приступили к подготовке к экзамену.
По техническим причинам одновременно сдавать экзамен могут не более k человек. Организация экзамена — достаточно хлопотное дело, и менеджеры хотели бы обойтись как можно меньшим количеством экзаменов.
Ваша задача — определить, какое минимальное количество экзаменов потребуется назначить, чтобы все сотрудники подтвердили свою квалификацию.
В первой строке содержатся целые числа n, m, k (1 ≤ n, k ≤ 105, 0 ≤ m ≤ 109) — количество сотрудников, допустимое отклонение от полного балла, максимально возможное количество одновременно экзаменующихся соответственно.
Во второй строке содержится n целых чисел d1, d2, ..., dn, где di (1 ≤ di ≤ 109) — количество дней, которое требуется сотруднику #i, чтобы подготовиться к экзамену.
В первой строке выведите минимально возможное количество экзаменов, которое придётся назначить, чтобы все сотрудники подтвердили свою квалификацию.
## Входные Данные
В первой строке содержатся целые числа n, m, k (1 ≤ n, k ≤ 105, 0 ≤ m ≤ 109) — количество сотрудников, допустимое отклонение от полного балла, максимально возможное количество одновременно экзаменующихся соответственно.Во второй строке содержится n целых чисел d1, d2, ..., dn, где di (1 ≤ di ≤ 109) — количество дней, которое требуется сотруднику #i, чтобы подготовиться к экзамену.
## Выходные Данные
В первой строке выведите минимально возможное количество экзаменов, которое придётся назначить, чтобы все сотрудники подтвердили свою квалификацию.
## Примеры
Входные данные4 3 35 8 13 21Выходные данные3Входные данные10 5 31 6 4 15 4 10 8 2 12 5Выходные данные4
[samples]
**Definitions**
Let $ n, m, k \in \mathbb{Z} $ be given, where:
- $ n $: number of employees,
- $ m $: maximum allowable score reduction from perfect score,
- $ k $: maximum number of employees allowed to take the exam simultaneously.
Let $ D = (d_1, d_2, \dots, d_n) $ be a sequence of integers, where $ d_i $ is the number of days employee $ i $ needs to prepare.
**Constraints**
1. $ 1 \leq n, k \leq 10^5 $
2. $ 0 \leq m \leq 10^9 $
3. $ 1 \leq d_i \leq 10^9 $ for all $ i \in \{1, \dots, n\} $
**Objective**
An employee $ i $ can take the exam on day $ d_i + t $ (for $ t \geq 0 $), achieving a score reduction of $ t $ (i.e., $ m - t \geq 0 $ must hold for qualification).
Thus, employee $ i $ must take the exam on or before day $ d_i + m $.
Each exam day can accommodate at most $ k $ employees.
Minimize the number of distinct exam days required so that every employee $ i $ takes the exam on some day $ x_i \in [d_i, d_i + m] $.