//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int siz(string s){ return (int)s.size(); } int main(){ int N, D; cin >> N >> D; vector A(N), B(N); for(int i = 0; i < N; i++){ cin >> A[i]; B[i] = A[i]; } sort(B.begin(), B.end()); for(int i = 0; i < N; i++){ int ng = -1, ok = N; while(ng+1 < ok){ int mid = (ng+ok)/2; D <= A[i]-B[mid] ? ng = mid : ok = mid; } printl(ok); } return 0; }