import sys

def main():
    in_1=sys.stdin.readline().split()
    n_points=int(in_1[0])
    #print("n puntos: "+str(n_points))
    diam_requerido=int(in_1[1])
    #print("d requerido: "+str(diam_requerido))
    l_numeros=sys.stdin.readline().split()
    l_numeros=[int(x) for x in l_numeros]
    #print("lista desordenada: ")
    #print(l_numeros)
    l_numeros.sort()
    #print("lista ordenada: ")
    #print(l_numeros)
    
    l_sumatoria=[0 for i in range(l_numeros[-1]+1)]
    for i in l_numeros:
        l_sumatoria[i]+=1
    #print("l sumatoria: "+str(l_sumatoria))
    
    num_eliminar=[]
    if l_numeros[-1]-l_numeros[0]<=diam_requerido:
            num_eliminar.append(0)
    else:
         for i in range(1,l_numeros[-1]+1):
            if diam_requerido+i<=l_numeros[n_points-1]:
                num_eliminar.append(n_points-sum(l_sumatoria[i:i+diam_requerido+1]))
                #print("sum: "+str(sum(l_sumatoria[i:i+diam_requerido+1])))
                #print(num_eliminar)
            else:
                 break
    num_eliminar_min=min(num_eliminar)
    print(num_eliminar_min)

if __name__ == "__main__":
	main()