#include <bits/stdc++.h>
using namespace std;
const int N = 2000 + 10;
int a[N];
vector<int> G[N];
int dfn[N], low[N], stk[N], be[N];
bool instk[N];
int n, scn, t, top, d, s;
int neg(int x) {
if (x > n) return x - n;
else return x + n;
}
bool ok(int x, int y) {
return abs(a[x] - a[y]) >= d;
}
void check(int i, int j) {
if (!ok(i, j)) {
G[i].push_back(neg(j));
G[j].push_back(neg(i));
}
if (!ok(i, neg(j))) {
G[i].push_back(j);
G[neg(j)].push_back(neg(i));
}
if (!ok(neg(i), j)) {
G[neg(i)].push_back(neg(j));
G[j].push_back(i);
}
if (!ok(neg(i), neg(j))) {
G[neg(i)].push_back(j);
G[neg(j)].push_back(i);
}
}
void dfs(int u) {
dfn[u] = low[u] = ++ t;
stk[top++] = u;
instk[u] = true;
for (int v: G[u]) {
if (dfn[v]) {
if (instk[v]) low[u] = min(low[u], dfn[v]);
continue;
}
dfs(v);
low[u] = min(low[u], low[v]);
}
if (low[u] == dfn[u]) {
scn ++;
while (true) {
int v = stk[--top];
instk[v] = false;
be[v] = scn;
if (v == u) break;
}
}
}
int main() {
cin >> n >> d;
for (int i=1; i<=n; i++) cin >> a[i] >> a[i+n];
for (int i=1; i<n; i++) {
for (int j=i+1; j<=n; j++) check(i, j);
}
for (int i=1; i<=2*n; i++) if (!dfn[i]) dfs(i);
bool ok = true;
for (int i=1; i<=n; i++) {
if (be[i] == be[i+n]) {
ok = false;
break;
}
}
if (ok) {
printf("Yes\n");
for (int i=1; i<=n; i++) if (be[i] < be[i+n]) printf("%d\n", a[i]); else printf("%d\n", a[i+n]);
}
else printf("No\n");
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAyMDAwICsgMTA7CgppbnQgYVtOXTsKdmVjdG9yPGludD4gR1tOXTsKaW50IGRmbltOXSwgbG93W05dLCBzdGtbTl0sIGJlW05dOwpib29sIGluc3RrW05dOwppbnQgbiwgc2NuLCB0LCB0b3AsIGQsIHM7CgppbnQgbmVnKGludCB4KSB7CglpZiAoeCA+IG4pIHJldHVybiB4IC0gbjsKCWVsc2UgcmV0dXJuIHggKyBuOwp9Cgpib29sIG9rKGludCB4LCBpbnQgeSkgewoJcmV0dXJuIGFicyhhW3hdIC0gYVt5XSkgPj0gZDsKfQoKdm9pZCBjaGVjayhpbnQgaSwgaW50IGopIHsKCWlmICghb2soaSwgaikpIHsKCQlHW2ldLnB1c2hfYmFjayhuZWcoaikpOwoJCUdbal0ucHVzaF9iYWNrKG5lZyhpKSk7Cgl9CglpZiAoIW9rKGksIG5lZyhqKSkpIHsKCQlHW2ldLnB1c2hfYmFjayhqKTsKCQlHW25lZyhqKV0ucHVzaF9iYWNrKG5lZyhpKSk7Cgl9CglpZiAoIW9rKG5lZyhpKSwgaikpIHsKCQlHW25lZyhpKV0ucHVzaF9iYWNrKG5lZyhqKSk7CgkJR1tqXS5wdXNoX2JhY2soaSk7Cgl9CglpZiAoIW9rKG5lZyhpKSwgbmVnKGopKSkgewoJCUdbbmVnKGkpXS5wdXNoX2JhY2soaik7CgkJR1tuZWcoaildLnB1c2hfYmFjayhpKTsKCX0KfQoKdm9pZCBkZnMoaW50IHUpIHsKCWRmblt1XSA9IGxvd1t1XSA9ICsrIHQ7CglzdGtbdG9wKytdID0gdTsKCWluc3RrW3VdID0gdHJ1ZTsKCWZvciAoaW50IHY6IEdbdV0pIHsKCQlpZiAoZGZuW3ZdKSB7CgkJCWlmIChpbnN0a1t2XSkgbG93W3VdID0gbWluKGxvd1t1XSwgZGZuW3ZdKTsKCQkJY29udGludWU7CgkJfQoJCWRmcyh2KTsKCQlsb3dbdV0gPSBtaW4obG93W3VdLCBsb3dbdl0pOwoJfQoJaWYgKGxvd1t1XSA9PSBkZm5bdV0pIHsKCQlzY24gKys7CgkJd2hpbGUgKHRydWUpIHsKCQkJaW50IHYgPSBzdGtbLS10b3BdOwoJCQlpbnN0a1t2XSA9IGZhbHNlOwoJCQliZVt2XSA9IHNjbjsKCQkJaWYgKHYgPT0gdSkgYnJlYWs7CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWNpbiA+PiBuID4+IGQ7Cglmb3IgKGludCBpPTE7IGk8PW47IGkrKykgY2luID4+IGFbaV0gPj4gYVtpK25dOwoJZm9yIChpbnQgaT0xOyBpPG47IGkrKykgewoJCWZvciAoaW50IGo9aSsxOyBqPD1uOyBqKyspIGNoZWNrKGksIGopOwoJfQoJZm9yIChpbnQgaT0xOyBpPD0yKm47IGkrKykgaWYgKCFkZm5baV0pIGRmcyhpKTsKCWJvb2wgb2sgPSB0cnVlOwoJZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIHsKCQlpZiAoYmVbaV0gPT0gYmVbaStuXSkgewoJCQlvayA9IGZhbHNlOwoJCQlicmVhazsKCQl9Cgl9CglpZiAob2spIHsKCQlwcmludGYoIlllc1xuIik7CgkJZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIGlmIChiZVtpXSA8IGJlW2krbl0pIHByaW50ZigiJWRcbiIsIGFbaV0pOyBlbHNlIHByaW50ZigiJWRcbiIsIGFbaStuXSk7IAoJfQoJZWxzZSBwcmludGYoIk5vXG4iKTsgCglyZXR1cm4gMDsKfQ==