#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long int #define LL unsigned long long #define pb push_back #define rep(i,n) for(int i=0;i<(n);i++) #define REP(i,n) for(int i=1;i<=(n);i++) using namespace std; int mx8[] = {0,0,1,-1,-1,1,-1,1}; int my8[] = {-1,1,0,0,-1,-1,1,1}; int mx4[] = {1,-1,0,0}; int my4[] = {0,0,-1,1}; const int MOD = 1000000007; int main() { ll n,d; cin >> n >> d; vector a(n),b(n); rep(i,n) cin >> a[i]; rep(i,n) b[i] = a[i] + d; sort(b.begin(),b.end()); rep(i,n){ auto iter = upper_bound(b.begin(),b.end(),a[i]); auto idx = distance(b.begin(),iter); cout << idx << endl; } }