#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define pii pair<int,int>
inline void dbg() { cout << '\n'; }
template <class Head, class... Tail>
inline void dbg(const Head& head, const Tail&... tail) {
cout << head << ' ';
dbg(tail...);
}
const int N = 2020;
const int MOD = 1e9+7;
int xi[N],yi[N],ri[N],p[N],mark[N][5],adj[5][5],dis[N],wow[N];
int fr(int i) {
if (i == p[i]) return i;
return p[i] = fr(p[i]);
}
void upd(int i) {
for (int j = 1; j <= 4; j++) {
if (j == i) continue;
adj[i][j] = adj[j][i] = 1;
}
}
int32_t main() {
memset(dis,0x3f,sizeof(dis));
ios::sync_with_stdio(false); cin.tie(nullptr);
int n,m; cin >> n >> m;
int w,h; cin >> w >> h;
for (int i = 1; i <= n; i++) {
cin >> xi[i] >> yi[i] >> ri[i];
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) continue;
int dx = xi[i]-xi[j], dy = yi[i]-yi[j];
int ndis = dx*dx+dy*dy;
if (ndis < dis[i]) {
dis[i] = ndis;
wow[i] = j;
}
}
}
while (m--) {
memset(mark,0,sizeof(mark));
memset(adj,0,sizeof(adj));
int r,e; cin >> r >> e;
for (int i = 1; i <= n; i++) p[i] = i;
for (int i = 1; i <= n; i++) {
int j = wow[i];
int dx = xi[i]-xi[j], dy = yi[i]-yi[j];
int dr = ri[i]+ri[j]+2*r;
if (dx*dx+dy*dy < dr*dr) {
int rii = fr(i), rjj = fr(j);
p[rii] = rjj;
}
}
for (int i = 1; i <= n; i++) {
int rii = fr(i);
if (xi[i]+ri[i]+r*2 > w) mark[rii][3] = 1;
if (xi[i]-ri[i]-r*2 < 0) mark[rii][1] = 1;
if (yi[i]+ri[i]+r*2 > h) mark[rii][4] = 1;
if (yi[i]-ri[i]-r*2 < 0) mark[rii][2] = 1;
}
for (int i = 1; i <= n; i++) {
if (i != fr(i)) continue;
if (mark[i][1] && mark[i][4]) upd(4);
if (mark[i][4] && mark[i][3]) upd(3);
if (mark[i][3] && mark[i][2]) upd(2);
if (mark[i][1] && mark[i][2]) upd(1);
if (mark[i][4] && mark[i][2]) {
adj[4][2] = adj[2][4] = 1;
adj[4][3] = adj[3][4] = 1;
adj[1][2] = adj[2][1] = 1;
adj[1][3] = adj[3][1] = 1;
}
if (mark[i][1] && mark[i][3]) {
adj[4][1] = adj[1][4] = 1;
adj[4][2] = adj[2][4] = 1;
adj[3][1] = adj[1][3] = 1;
adj[3][2] = adj[2][3] = 1;
}
}
for (int i = 1; i <= 4; i++) {
if (adj[e][i]) continue;
cout << i;
}
cout << "\n";
}
return 0;
}