#include using namespace std; template inline bool chmax(T &a, T b) { if(a < b) { a = b; return 1; } return 0; } template inline bool chmin(T &a, T b) { if(a > b) { a = b; return 1; } return 0; } void debug() { cerr << "\n"; } template void debug(const T &x) { cerr << x << "\n"; } template void debug(const T &x, const Args &... args) { cerr << x << " "; debug(args...); } template void debugVector(const vector &v) { for(const T &x : v) { cerr << x << " "; } cerr << "\n"; } using ll = long long; #define ALL(v) (v).begin(), (v).end() #define RALL(v) (v).rbegin(), (v).rend() const double EPS = 1e-7; const int INF = 1 << 30; const ll LLINF = 1LL << 60; const double PI = acos(-1); constexpr int MOD = 1000000007; const int dx[4] = {1, 0, -1, 0}; const int dy[4] = {0, 1, 0, -1}; //------------------------------------- int main() { cin.tie(0); ios::sync_with_stdio(false); int n; ll d; cin >> n >> d; vector> v; for(int i = 0; i < n; i++) { ll a; cin >> a; v.emplace_back(a, i); } sort(ALL(v)); // for(int i = 0; i < n; i++) { // cerr << v[i].first << " " << v[i].second << endl; // } vector ans(n); for(int i = 0; i < n; i++) { auto it = upper_bound(ALL(v), make_pair(v[i].first - d, INF)); it--; ans[v[i].second] = it - v.begin() + 1; } for(auto i : ans) { cout << i << "\n"; } }