/// Banu Denis - monotone stack solution #include using namespace std; #define ll long long #define ld long double #define ull unsigned long long #define pii pair #define MOD 1000000007 #define zeros(x) x&(x-1)^x #define fi first #define se second #define NMAX 200005 const long double PI = acos(-1); int n,k,ans[NMAX]; deque bst; vector > v; int main(){ ios::sync_with_stdio(false); cin >> n >> k; for (int i=1;i<=n;i++) { int x; cin >> x; v.push_back({x, i}); } sort(v.begin(), v.end()); v.push_back({int(2e9) + 3, 0}); int st = 0, dr = -1; while (st < n) { while (v[st].first + k >= v[dr+1].first) dr++; while (!bst.empty() && bst.back().first <= dr-st+1) bst.pop_back(); bst.push_back({dr-st+1, dr}); while (!bst.empty() && bst.front().second < st) bst.pop_front(); ans[v[st].second] = bst.front().first; st++; } for (int i=1;i<=n;i++) cout << ans[i] << ' '; cout << '\n'; return 0; }