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.*;
import java.math.*;
import java.lang.*;
public class Program {

	
	

     public static long findPower(long x, long y) {
			if (y == 0)
				return 1;

			long halfPower = findPower(x, y / 2);

			if (y % 2 == 0)
				return halfPower * halfPower;
			return x * halfPower * halfPower;
		}

		

	public static long ggcd(long p,long q) {
		if(p<q) {
			long temp = p;
			p=q;
			q=temp;
		}
		while(q!=0) {
			long temp = p;
			p=q;
			q=temp%q;
		}
		return p;
	}
	
	public static long gcd(long x, long y)
	{
		if(x==0)
			return y;
		if(y==0)
			return x;
		long r=0, a, b;
		a = (x > y) ? x : y; // a is greater number
		b = (x < y) ? x : y; // b is smaller number
		r = b;
		while(a % b != 0)
		{
			r = a % b;
			a = b;
			b = r;
		}
		return r;
	}
	
	static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;
 
        public FastReader()
        {
            br = new BufferedReader(new
                     InputStreamReader(System.in));
        }
 
        String next()
        {
            while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }
 
        int nextInt()
        {
            return Integer.parseInt(next());
        }
 
        long nextLong()
        {
            return Long.parseLong(next());
        }
 
        double nextDouble()
        {
            return Double.parseDouble(next());
        }
 
        String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
    }
	
	
	public static void main(String[] args) {
		/*
		 * Enter your code here. Read input from STDIN. Print output to STDOUT.
		 * Your class should be named Solution.
		 */
		FastReader s=new FastReader();
		
        int n=s.nextInt();
        int K=s.nextInt();
        ArrayList<Integer> arr=new ArrayList<Integer>();
        for(int i=0;i<n;i++)
        {
        	arr.add(s.nextInt());
        }
        Collections.sort(arr);
        int count=n;
        if(arr.get(n-1)>arr.get(0)+K)
        {
        for(int i=0;i<n-1;i++)
        {
          for(int j=i+1;j<n;j++)
          {
        	  if(arr.get(i)<arr.get(j)&&arr.get(i)+K>=arr.get(j))
        	  {
        		  count--;
        		  break;
        	  }
          }
        }
        }
        System.out.println(count);
               	}
}