2 1
1 1
 4 1
2 2 1 1
 10 1
2 6 3 4 2 4 4 3 2 1
 2 1
999152 999153
 8 1000000
1 1 5 1000000 1000000 2 2 2
 9 2
1 6 1 5 5 8 6 8 7
 15 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 4
8
 10 1
6 3 1 3 6 4 1 3 6 4
 10 1
1 2 3 5 6 8 10 11 9 4
 7 2
1 5 5 8 9 8 8
 2 1000000
1 1000000
 8 2
3 13 9 8 3 13 9 14
 1 1
1
 2 1
1 2

2
 2
 4
 1
 2
 4
 15
 1
 7
 2
 4
 1
 5
 1
 1

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
	BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	String[] data = in.readLine().split(" ");
	int n = Integer.parseInt(data[0]);
	int k = Integer.parseInt(data[1]);
	List<Integer> petri = new ArrayList<>(n);
	{
	    StringTokenizer st = new StringTokenizer(in.readLine());
	    while (st.hasMoreTokens()) {
		petri.add(Integer.parseInt(st.nextToken()));
	    }
	}
	Collections.sort(petri);
	int numEaten = 0;
	for (int p : petri) {
	    int e = Collections.binarySearch(petri, p + k);
	    if (e >= 0) {
		numEaten++;
	    } else {
		int i = -e - 2;
		if (0 <= i && i < n) {
		    int a = petri.get(i);
		    if (p < a && a <= p + k) {
			numEaten++;
		    }
		}
	    }
	}
	System.out.println(n - numEaten);
    }
}
