#include<stdio.h>
#include<set>
#include<deque>
using namespace std;
struct xy {
int x, y, z;
bool operator<(const xy p)const {
if (x != p.x)return x > p.x;
if (y != p.y)return y < p.y;
return z < p.z;
}
};
set<xy>S[2];
int D[2][121212];
int main() {
int i, j;
int n, d;
deque<int>Qc, Qw, Qq;
scanf("%d%d", &n, &d);
for (i = 0; i < 2; i++) {
int x[2];
for (j = 0; j < n; j++) {
scanf("%d%d", &x[i], &x[!i]);
if (x[1] == 0) {
D[i][j] = 2;
Qc.push_back(i);
Qw.push_back(j);
Qq.push_back(x[0]);
}
else S[i].insert({ x[1],x[0],j });
}
}
while (!Qc.empty()) {
int nc = Qc.front(); Qc.pop_front();
int nw = Qw.front(); Qw.pop_front();
int nq = Qq.front(); Qq.pop_front();
set<xy>::iterator it = S[!nc].lower_bound({ nq,(int)-1e9,(int)-1e9 });
while (it != S[!nc].end()) {
if (it->x < nq - d)break;
Qc.push_back(!nc);
Qw.push_back(it->z);
Qq.push_back(it->y);
D[!nc][it->z] = D[nc][nw] + 1;
S[!nc].erase(it++);
}
}
for (i = 0; i < n; i++) printf("%d\n", D[0][i] - 1);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c2V0PgojaW5jbHVkZTxkZXF1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IHh5IHsKCWludCB4LCB5LCB6OwoJYm9vbCBvcGVyYXRvcjwoY29uc3QgeHkgcCljb25zdCB7CgkJaWYgKHggIT0gcC54KXJldHVybiB4ID4gcC54OwoJCWlmICh5ICE9IHAueSlyZXR1cm4geSA8IHAueTsKCQlyZXR1cm4geiA8IHAuejsKCX0KfTsKc2V0PHh5PlNbMl07CmludCBEWzJdWzEyMTIxMl07CmludCBtYWluKCkgewoJaW50IGksIGo7CglpbnQgbiwgZDsKCWRlcXVlPGludD5RYywgUXcsIFFxOwoJc2NhbmYoIiVkJWQiLCAmbiwgJmQpOwoJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewoJCWludCB4WzJdOwoJCWZvciAoaiA9IDA7IGogPCBuOyBqKyspIHsKCQkJc2NhbmYoIiVkJWQiLCAmeFtpXSwgJnhbIWldKTsKCQkJaWYgKHhbMV0gPT0gMCkgewoJCQkJRFtpXVtqXSA9IDI7CgkJCQlRYy5wdXNoX2JhY2soaSk7CgkJCQlRdy5wdXNoX2JhY2soaik7CgkJCQlRcS5wdXNoX2JhY2soeFswXSk7CgkJCX0KCQkJZWxzZSBTW2ldLmluc2VydCh7IHhbMV0seFswXSxqIH0pOwoJCX0KCX0KCXdoaWxlICghUWMuZW1wdHkoKSkgewoJCWludCBuYyA9IFFjLmZyb250KCk7IFFjLnBvcF9mcm9udCgpOwoJCWludCBudyA9IFF3LmZyb250KCk7IFF3LnBvcF9mcm9udCgpOwoJCWludCBucSA9IFFxLmZyb250KCk7IFFxLnBvcF9mcm9udCgpOwoJCXNldDx4eT46Oml0ZXJhdG9yIGl0ID0gU1shbmNdLmxvd2VyX2JvdW5kKHsgbnEsKGludCktMWU5LChpbnQpLTFlOSB9KTsKCQl3aGlsZSAoaXQgIT0gU1shbmNdLmVuZCgpKSB7CgkJCWlmIChpdC0+eCA8IG5xIC0gZClicmVhazsKCQkJUWMucHVzaF9iYWNrKCFuYyk7CgkJCVF3LnB1c2hfYmFjayhpdC0+eik7CgkJCVFxLnB1c2hfYmFjayhpdC0+eSk7CgkJCURbIW5jXVtpdC0+el0gPSBEW25jXVtud10gKyAxOwoJCQlTWyFuY10uZXJhc2UoaXQrKyk7CgkJfQoJfQoJZm9yIChpID0gMDsgaSA8IG47IGkrKykgcHJpbnRmKCIlZFxuIiwgRFswXVtpXSAtIDEpOwoJcmV0dXJuIDA7Cn0=