#!/usr/bin/python3

PierwszaLinia=input().split(' ')
DrugaLinia=input().split(' ')
N=int(PierwszaLinia[0])
D=int(PierwszaLinia[1])
TablicaLiczb=[]
for i in range(N):
	TablicaLiczb.append( int(DrugaLinia[i]) )

TablicaLiczb.sort()



Poczatek=Koniec=Maximum=Tymczasowa=0
Minimum=len(TablicaLiczb)

for i in range(len(TablicaLiczb)):
	while (TablicaLiczb[i]-TablicaLiczb[Poczatek] >D):
		Poczatek+=1


	Tymczasowa=i-Poczatek
	if(Tymczasowa>Maximum):
		Maximum=Tymczasowa
	

Minimum=len(TablicaLiczb)-Maximum-1



print(Minimum)
