Как известно, в теплую погоду многие жители крупных городов пользуются сервисами городского велопроката. Вот и Аркадий сегодня будет добираться от школы до дома, используя городские велосипеды.
Школа и дом находятся на одной прямой улице, кроме того, на той же улице есть _n_ точек, где можно взять велосипед в прокат или сдать его. Первый велопрокат находится в точке _x_1 километров вдоль улицы, второй — в точке _x_2 и так далее, _n_\-й велопрокат находится в точке _x__n_. Школа Аркадия находится в точке _x_1 (то есть там же, где и первый велопрокат), а дом — в точке _x__n_ (то есть там же, где и _n_\-й велопрокат). Известно, что _x__i_ < _x__i_ + 1 для всех 1 ≤ _i_ < _n_.
Согласно правилам пользования велопроката, Аркадий может брать велосипед в прокат только на ограниченное время, после этого он должен обязательно вернуть его в одной из точек велопроката, однако, он тут же может взять новый велосипед, и отсчет времени пойдет заново. Аркадий может брать не более одного велосипеда в прокат одновременно. Если Аркадий решает взять велосипед в какой-то точке проката, то он сдаёт тот велосипед, на котором он до него доехал, берёт ровно один новый велосипед и продолжает на нём своё движение.
За отведенное время, независимо от выбранного велосипеда, Аркадий успевает проехать не больше _k_ километров вдоль улицы.
Определите, сможет ли Аркадий доехать на велосипедах от школы до дома, и если да, то какое минимальное число раз ему необходимо будет взять велосипед в прокат, включая первый велосипед? Учтите, что Аркадий не намерен сегодня ходить пешком.
## Входные Данные
В первой строке следуют два целых числа _n_ и _k_ (2 ≤ _n_ ≤ 1 000, 1 ≤ _k_ ≤ 100 000) — количество велопрокатов и максимальное расстояние, которое Аркадий может проехать на одном велосипеде.
В следующей строке следует последовательность целых чисел _x_1, _x_2, ..., _x__n_ (0 ≤ _x_1 < _x_2 < ... < _x__n_ ≤ 100 000) — координаты точек, в которых находятся велопрокаты. Гарантируется, что координаты велопрокатов заданы в порядке возрастания.
## Выходные Данные
Если Аркадий не сможет добраться от школы до дома только на велосипедах, выведите _\-1_. В противном случае, выведите минимальное количество велосипедов, которые Аркадию нужно взять в точках проката.
## Примеры
Входные данные
4 4
3 6 8 10
Выходные данные
2
Входные данные
2 9
10 20
Выходные данные
\-1
Входные данные
12 3
4 6 7 9 10 11 13 15 17 18 20 21
Выходные данные
6
## Примечание
В первом примере Аркадий должен взять первый велосипед в первом велопрокате и доехать на нём до второго велопроката. Во втором велопрокате он должен взять новый велосипед, на котором он сможет добраться до четвертого велопроката, рядом с которым и находится его дом. Поэтому Аркадию нужно всего два велосипеда, чтобы добраться от школы до дома.
Во втором примере всего два велопроката, расстояние между которыми 10. Но максимальное расстояние, которое можно проехать на одном велосипеде, равно 9. Поэтому Аркадий не сможет добраться от школы до дома только на велосипедах.
[samples]
众所周知,在温暖的天气里,许多大城市居民会使用城市自行车租赁服务。今天,阿尔卡季也将使用城市自行车从学校回家。
学校和家位于同一条直街上,且在这条街上还有 #cf_span[n] 个地点可以租用或归还自行车。第一个自行车租赁点位于街道上的 #cf_span[x1] 公里处,第二个位于 #cf_span[x2] 公里处,依此类推,第 #cf_span[n] 个租赁点位于 #cf_span[xn] 公里处。阿尔卡季的学校位于 #cf_span[x1] 处(即与第一个租赁点相同),而家位于 #cf_span[xn] 处(即与第 #cf_span[n] 个租赁点相同)。已知对于所有 #cf_span[1 ≤ i < n],有 #cf_span[xi < xi + 1]。
根据自行车租赁规则,阿尔卡季只能在限定时间内租用自行车,之后必须将自行车归还到任意一个租赁点,但他可以立即租用另一辆自行车,计时重新开始。阿尔卡季同时最多只能租用一辆自行车。如果阿尔卡季决定在某个租赁点租用自行车,他必须将当前骑行的自行车归还,并恰好租用一辆新的自行车,然后继续骑行。
在规定时间内,无论选择哪辆自行车,阿尔卡季最多能沿街道骑行 #cf_span[k] 公里。
请判断阿尔卡季是否能仅通过自行车从学校到达家;如果可以,他最少需要在租赁点租用多少次自行车(包括第一次租用)?请注意,阿尔卡季今天不打算步行。
第一行包含两个整数 #cf_span[n] 和 #cf_span[k](#cf_span[2 ≤ n ≤ 1 000],#cf_span[1 ≤ k ≤ 100 000]),分别表示自行车租赁点的数量和阿尔卡季在一辆自行车上能骑行的最大距离。
第二行包含一个整数序列 #cf_span[x1, x2, ..., xn](#cf_span[0 ≤ x1 < x2 < ... < xn ≤ 100 000]),表示各租赁点的坐标。保证租赁点坐标按升序给出。
如果阿尔卡季无法仅通过自行车从学校到达家,请输出 _-1_;否则,请输出他需要在租赁点租用的最少自行车数量。
在第一个例子中,阿尔卡季必须在第一个租赁点租用第一辆自行车,骑行至第二个租赁点;在第二个租赁点,他租用一辆新自行车,骑行至第四个租赁点(他的家就在那里)。因此,阿尔卡季总共需要两辆自行车才能从学校到达家。
在第二个例子中,只有两个租赁点,它们之间的距离为 #cf_span[10]。但一辆自行车的最大骑行距离为 #cf_span[9]。因此,阿尔卡季无法仅通过自行车从学校到达家。
## Входные Данные
第一行包含两个整数 #cf_span[n] 和 #cf_span[k](#cf_span[2 ≤ n ≤ 1 000],#cf_span[1 ≤ k ≤ 100 000]),分别表示自行车租赁点的数量和阿尔卡季在一辆自行车上能骑行的最大距离。第二行包含一个整数序列 #cf_span[x1, x2, ..., xn](#cf_span[0 ≤ x1 < x2 < ... < xn ≤ 100 000]),表示各租赁点的坐标。保证租赁点坐标按升序给出。
## Выходные Данные
如果阿尔卡季无法仅通过自行车从学校到达家,请输出 _-1_;否则,请输出他需要在租赁点租用的最少自行车数量。
## Примеры
输入:
4 4
3 6 8 10
输出:
2
输入:
2 9
10 20
输出:
-1
输入:
12 3
4 6 7 9 10 11 13 15 17 18 20 21
输出:
6
## Примечание
在第一个例子中,阿尔卡季必须在第一个租赁点租用第一辆自行车,骑行至第二个租赁点;在第二个租赁点,他租用一辆新自行车,骑行至第四个租赁点(他的家就在那里)。因此,阿尔卡季总共需要两辆自行车才能从学校到达家。
在第二个例子中,只有两个租赁点,它们之间的距离为 #cf_span[10]。但一辆自行车的最大骑行距离为 #cf_span[9]。因此,阿尔卡季无法仅通过自行车从学校到达家。
[samples]
**Definitions:**
- Let $ n \in \mathbb{N} $, $ n \geq 2 $: number of bike rental points.
- Let $ k \in \mathbb{N} $, $ k \geq 1 $: maximum distance that can be traveled on a single bike.
- Let $ x_1 < x_2 < \dots < x_n $: coordinates of the rental points along a line, with $ x_1 $ (school) and $ x_n $ (home) as endpoints.
**Constraints:**
- Arcaidy starts at $ x_1 $ with the first bike (counted as first pickup).
- He must end at $ x_n $.
- He may only change bikes at points $ x_i $, $ i \in \{1, 2, \dots, n\} $.
- At each pickup, he must return the previous bike and take exactly one new one.
- The distance traveled on any single bike cannot exceed $ k $: if he picks up a bike at $ x_i $ and drops it at $ x_j $, then $ x_j - x_i \leq k $.
- He cannot walk; all movement must be by bike.
**Objective:**
Find the **minimum number of bike pickups** (including the initial one at $ x_1 $) required to reach $ x_n $, or return $-1$ if impossible.
---
**Formal Problem:**
Given $ x_1, x_2, \dots, x_n \in \mathbb{R} $, $ x_1 < x_2 < \dots < x_n $, and $ k \in \mathbb{N} $, find the minimum number of segments $ m $ such that there exists a sequence:
$$
1 = i_0 < i_1 < i_2 < \dots < i_{m-1} = n
$$
satisfying:
$$
x_{i_j} - x_{i_{j-1}} \leq k \quad \text{for all } j = 1, 2, \dots, m-1
$$
If no such sequence exists, output $-1$. Otherwise, output $ m $.
---
**Note:** This is equivalent to finding the **minimum number of hops** in a path from index 1 to index $ n $, where each hop can cover at most distance $ k $, and hops must land exactly on rental points.