#include <iostream>
#include <algorithm>
using namespace std;
void exchange(int &a, int &b){
int temp;
temp = a;
a = b;
b = temp;
}
//3 way quick sort
void waySort(int a[],int lo, int hi){
if(hi <= lo){
return;
}
int lt = lo;
int gt = hi;
int i = lo;
int toCompare = a[lo]; // indexes can be int, but values must be long int
while(i <= gt){
if(a[i] < toCompare){
exchange(a[lt++], a[i++]);
}
else if(a[i] > toCompare){
exchange(a[i], a[gt--]);
}
else{
++i;
}
}
waySort(a, lo, lt-1);
waySort(a, gt+1, hi);
}
int main(){
int N, D;
int counter;
counter = 0;
cin >> N >> D;
int *l;
l = new int[N+1];
for(int j = 0; j != N; ++j){
cin >> l[j];
}
waySort(l, 0, N-1); //3 way q-sort the array
for(int i = 0; i < N-1; ++i){
if(l[i] + D >= l[i+1])
{
++counter;
++i;
}
}
cout << counter;
delete [] l;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnZvaWQgZXhjaGFuZ2UoaW50ICZhLCBpbnQgJmIpewoJaW50IHRlbXA7IAoJdGVtcCA9IGE7CglhID0gYjsKCWIgPSB0ZW1wOwp9CiAKLy8zIHdheSBxdWljayBzb3J0CnZvaWQgd2F5U29ydChpbnQgYVtdLGludCBsbywgaW50IGhpKXsKCWlmKGhpIDw9IGxvKXsKCQlyZXR1cm47Cgl9CglpbnQgbHQgPSBsbzsKCWludCBndCA9IGhpOwoJaW50IGkgPSBsbzsKCWludCB0b0NvbXBhcmUgPSBhW2xvXTsgLy8gaW5kZXhlcyBjYW4gYmUgaW50LCBidXQgdmFsdWVzIG11c3QgYmUgbG9uZyBpbnQKCXdoaWxlKGkgPD0gZ3QpewoJCWlmKGFbaV0gPCB0b0NvbXBhcmUpewoJCQlleGNoYW5nZShhW2x0KytdLCBhW2krK10pOwoJCX0KCQllbHNlIGlmKGFbaV0gPiB0b0NvbXBhcmUpewoJCQlleGNoYW5nZShhW2ldLCBhW2d0LS1dKTsKCQl9CgkJZWxzZXsKCQkJKytpOwogCgkJfQoJfQoJd2F5U29ydChhLCBsbywgbHQtMSk7Cgl3YXlTb3J0KGEsIGd0KzEsIGhpKTsKfQogCmludCBtYWluKCl7CglpbnQgTiwgRDsKCWludCBjb3VudGVyOwoJY291bnRlciA9IDA7CgljaW4gPj4gTiA+PiBEOwoJCglpbnQgKmw7CglsID0gbmV3IGludFtOKzFdOwoJZm9yKGludCBqID0gMDsgaiAhPSBOOyArK2opewoJCWNpbiA+PiBsW2pdOwoJfQoJCgl3YXlTb3J0KGwsIDAsIE4tMSk7IC8vMyB3YXkgcS1zb3J0IHRoZSBhcnJheQogCQoJZm9yKGludCBpID0gMDsgaSA8IE4tMTsgKytpKXsKCQlpZihsW2ldICsgRCA+PSBsW2krMV0pCgkJewoJCQkrK2NvdW50ZXI7CgkJCSsraTsKCQl9Cgl9Cgljb3V0IDw8IGNvdW50ZXI7CglkZWxldGUgW10gbDsKCXJldHVybiAwOwp9IA==