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

#include<bits/stdc++.h>
using namespace std;

int K;

class Bacteria
{
public:
    int a;
    Bacteria(int c)
    {
        this->a = c;
    }
    bool operator<(Bacteria rhs)
    {
        return this->a > rhs.a && this->a <= rhs.a+K;
    }
    void print()
    {
        printf("%d  ", a);
    }
};

int main()
{
    vector<Bacteria> petri;
    int n;
    scanf("%d %d", &n, &K);
    for(int i=0; i<n; i++)
    {
        int a;
        scanf("%d", &a);
        petri.push_back(Bacteria(a));
    }
    sort(petri.begin(), petri.end());
    int a = petri[n-1].a;
    for(int i=1; i<=n; i++)
    {
        if(petri[n-i].a<a)
        {
            printf("%d", i-1);
            return 0;
        }
        a = petri[n-i].a;
    }
    printf("%d",n);
}
