D. Grouping
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

A group of numbers is called good if

  • the size of the set (the amount of numbers) does not exceed k;
  • the difference between the minimum and maximum number does not exceed M;

The group may contain duplicate values — for example, the size of the group (2, 7, 3, 7) is 4, and the difference between the minimum and maximum number is 7 - 2 = 5.

Given an array of integers a. Split its elements into the minimum number of good groups.

Input

The first line contains integers n, M, k (1 ≤ n,  k ≤ 105, 0 ≤ M ≤ 109) — the number of elements in the array, the maximum difference between the numbers in the set, and the maximum size of the set, respectively.

The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 109) — the elements of the array.

Output

In a single line, output the minimum possible number of good groups into which the given array can be split.

Examples
Input
4 3 3
5 8 13 21
Output
3
Input
10 5 3
1 6 4 15 4 10 8 2 12 5
Output
4
Note

The second test example

The array can be split, for example, into the following groups:

  • (1, 4, 6) — maximum difference 5;
  • (2, 5) — maximum difference 3;
  • (4, 8) — maximum difference 4;
  • (10, 12, 15) — maximum difference 5.