#include using namespace std; #define rep(i,n) for(int i = 0; i < (int)(n); i++) #define repr(i,n) for(int i = (int)(n); i >= 0; i--) #define all(v) v.begin(),v.end() typedef long long ll; int main(){ ll N,D; cin >> N >> D; vector vec(N); rep(i,N){ cin >> vec[i]; } vector vec_copy(N); rep(i,N){ vec_copy[i] = vec[i]; } sort(all(vec_copy)); rep(i,N){ if (vec[i] - D < vec_copy[0]){ cout << 0 << endl; } else{ vector::iterator itr = upper_bound(all(vec_copy), vec[i] - D); cout << itr - vec_copy.begin() << endl; } } }