//no-unlocked { ll n, a, b; rd(n, a, b); ll x[2d5]; rd(x(n)); unionFind uf('w', n, 1); ll j = 0; rep(i, n) { while (x[i] - x[j] > b) j++; while (x[i] - x[j] >= a) { uf(j, i); j++; } if (j) j--; } rep(i, n) { wt(uf.size(uf.get(i))); } }