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

#Author : Zahin uddin
#Github : https://github.com/Zahin52


from sys import *
#import math
#import queue
from collections import Counter
input=stdin.readline
listInput=lambda:list(map(int,input().strip().split()))
lineInput= lambda:map(int,input().strip().split())
sJoin=lambda a,sep : f'{sep}'.join(a)
arrJoin=lambda a,sep : f'{sep}'.join(map(str,a))
#print=stdout.write
def isPrime(n):
    if(n <= 1):
        return False
    if(n <= 3):
        return True
    if(n % 2 == 0 or n % 3 == 0):
        return False
    for i in range(5,int(math.sqrt(n) + 1), 6):
        if(n % i == 0 or n % (i + 2) == 0):
            return False
    return True
def main():
    n,k=lineInput()
    arr=listInput()
    arr=sorted(arr)
    d=Counter(arr)
    c=0
    #print(arr)
    for i in range(1,len(arr)):
        if arr[i]>arr[i-1] and arr[i]<=arr[i-1]+k:
            d[arr[i-1]]=0
    #print(d)
    for i,v in d.items():
        #print(i)
        c+=d[i]
    print(c)
if __name__ == "__main__":
    main()

	 	 		   		    		   	 	 		