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.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*;
import java.lang.*;

public class Main {
        public static void main(String args[]) throws IOException {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                StringTokenizer stk = new StringTokenizer(br.readLine());
                int n = Integer.parseInt(stk.nextToken());
                int k = Integer.parseInt(stk.nextToken());
                int[] arr = new int[n];
                stk = new StringTokenizer(br.readLine());
                for(int i=0;i<n;i++){
                        arr[i] = Integer.parseInt(stk.nextToken());
                }
                Arrays.sort(arr);
                int cnt = 0 ;
                for(int i=0;i<n;i++){
                        int index = Arrays.binarySearch(arr,arr[i]+k);
                        if(index <0 ) index = -index- 1;

                        if(index<n){
                                if(arr[index]<=arr[i]+k && arr[index]>arr[i]){
                                 //       System.out.println(i+" 증가");
                                        cnt+=1;
                                }
                        }
                        else{
                                if(i!=n-1&&arr[n-1]>arr[i]){
                                        cnt+=1;
                                }
                        }
                }
                System.out.println(n - cnt);
        }
}
