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.util.*;
import java.io.*;
public class Solution
{
	public static void main(String [] args) throws IOException
	{
        /*
        

inputCopy
7 1
101 53 42 102 101 55 54
outputCopy
3
inputCopy
6 5
20 15 10 15 20 25
outputCopy
1
inputCopy
7 1000000
1 1 1 1 1 1 1
outputCopy
7
        */
		Scanner sc=new Scanner(System.in);
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer(br.readLine());
        int n=Integer.valueOf(st.nextToken());
        int k=Integer.valueOf(st.nextToken());
        int [] arr=new int [n];
        st=new StringTokenizer(br.readLine());
        int i=0;
        while(i<n)
        {
            arr[i]=Integer.parseInt(st.nextToken());
            i++;
        }
       Arrays.sort(arr);
        int killed=0;
        for(int j=0;j<arr.length;j++)
        {
            if(arr[j]!=-1)
            {
                int toKill=arr[j];
                if(j!=arr.length-1)
                {
                    
                    int next=arr[j+1];
                    if(next<=toKill+k && next>toKill)
                    {
                        arr[j]=-1;
                        killed++;
                    }
                }
            }
        }
       System.out.println(arr.length-killed);
        }
        
	

}
