Как известно, в теплую погоду многие жители крупных городов пользуются сервисами городского велопроката. Вот и Аркадий сегодня будет добираться от школы до дома, используя городские велосипеды.

Школа и дом находятся на одной прямой улице, кроме того, на той же улице есть *n* точек, где можно взять велосипед в прокат или сдать его. Первый велопрокат находится в точке *x*<sub class="lower-index">1</sub> километров вдоль улицы, второй — в точке *x*<sub class="lower-index">2</sub> и так далее, *n*-й велопрокат находится в точке *x*<sub class="lower-index">*n*</sub>. Школа Аркадия находится в точке *x*<sub class="lower-index">1</sub> (то есть там же, где и первый велопрокат), а дом — в точке *x*<sub class="lower-index">*n*</sub> (то есть там же, где и *n*-й велопрокат). Известно, что *x*<sub class="lower-index">*i*</sub> &lt; *x*<sub class="lower-index">*i* + 1</sub> для всех 1 ≤ *i* &lt; *n*.

Согласно правилам пользования велопроката, Аркадий может брать велосипед в прокат только на ограниченное время, после этого он должен обязательно вернуть его в одной из точек велопроката, однако, он тут же может взять новый велосипед, и отсчет времени пойдет заново. Аркадий может брать не более одного велосипеда в прокат одновременно. Если Аркадий решает взять велосипед в какой-то точке проката, то он сдаёт тот велосипед, на котором он до него доехал, берёт ровно один новый велосипед и продолжает на нём своё движение.

За отведенное время, независимо от выбранного велосипеда, Аркадий успевает проехать не больше *k* километров вдоль улицы. 

Определите, сможет ли Аркадий доехать на велосипедах от школы до дома, и если да, то какое минимальное число раз ему необходимо будет взять велосипед в прокат, включая первый велосипед? Учтите, что Аркадий не намерен сегодня ходить пешком.
В первой строке следуют два целых числа *n* и *k* (2 ≤ *n* ≤ 1 000, 1 ≤ *k* ≤ 100 000) — количество велопрокатов и максимальное расстояние, которое Аркадий может проехать на одном велосипеде.

В следующей строке следует последовательность целых чисел *x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*n*</sub> (0 ≤ *x*<sub class="lower-index">1</sub> &lt; *x*<sub class="lower-index">2</sub> &lt; ... &lt; *x*<sub class="lower-index">*n*</sub> ≤ 100 000) — координаты точек, в которых находятся велопрокаты. Гарантируется, что координаты велопрокатов заданы в порядке возрастания.
В первом примере Аркадий должен взять первый велосипед в первом велопрокате и доехать на нём до второго велопроката. Во втором велопрокате он должен взять новый велосипед, на котором он сможет добраться до четвертого велопроката, рядом с которым и находится его дом. Поэтому Аркадию нужно всего два велосипеда, чтобы добраться от школы до дома.

Во втором примере всего два велопроката, расстояние между которыми 10. Но максимальное расстояние, которое можно проехать на одном велосипеде, равно 9. Поэтому Аркадий не сможет добраться от школы до дома только на велосипедах.
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
2 1
11164 11165
1
3 7
45823 45825 45829
1
2 100000
0 100000
1
50 15001
1269 1580 5431 5916 6642 14145 15760 19922 20589 22062 24138 33454 33505 35916 37012 42577 43140 49457 54720 55188 56205 56639 56870 57997 58379 59088 59297 61805 61861 63005 64013 68848 71182 71497 72715 73008 75616 76042 76614 80690 83089 85033 86408 92392 92763 93833 95085 95815 97152 99379
8
5 7
6219 6222 6229 6231 6236
3
10 448
78449 78573 78599 78742 78748 78759 78853 79091 79298 79324
3
20 19191
11272 12386 14108 24663 24932 26547 29656 44677 45436 45654 48562 62367 71049 71238 78182 84042 88736 92026 96836 99343
6
2 100000
1 100000
1
2 99999
0 100000
-1
2 2
1 3
1
2 2
1 2
1
2 2
1 4
-1
10 1
1 2 3 4 5 6 7 8 9 10
9
import random


def parse_string(s: str) -> []:
    return list(map(int, s.split(' ')))


def count_stop(k, points: list) -> int:
    c_stop = 0
    last_point = points[0]
    for i, v in enumerate(points[1:]):
        if v - last_point <= k:
            continue
        else:
            if last_point == points[i]:
                return -1
            else:
                last_point = points[i]
                c_stop += 1
    return c_stop + 1


if __name__ == '__main__':
    (_, k) = parse_string(input())
    points = parse_string(input())

    print(count_stop(k, points))
