#include <bits/stdc++.h>
#define fi first
#define se second
#define int long long
using namespace std;
const long long oo=1e18;
const int mod=1e9+7;
const int base=31;
int Test=1;
void home()
{
if(fopen("main.inp","r"))
freopen("main.inp","r",stdin),
freopen("main.out","w",stdout);
}
bool bit(int mask,int i){return (mask>>i)&1;}
struct Fenwick
{
int n;vector<int>f;
Fenwick(int _n):n(_n){f.resize(n+5);}
void Update(int id,int val)
{
for(;id<=n;id+=id&-id)
f[id]+=val;
}
int Get(int id)
{
int d=0;
for(;id;id-=id&-id)
d+=f[id];
return d;
}
}*BIT;
int Dist(int x,int y,int u,int v)
{
return (x-u)*(x-u)+(v-y)*(v-y);
}
pair<int,int>Kien[1000006];
pair<int,int>Thanh[1000006];
int n,q;
int x[1000006],y[1000006],z[1000006];
int xKien,yKien,xThanh,yThanh;
int ThanhId[1000006],ThanhVal[1000006];
struct Query
{
int r1,r2,id;
bool operator<(const Query &ot)const{return r1<ot.r1;}
}Q[1000006];
int kq[1000006];
vector<int>mau[1000006];int miid[1000006];
bool pass[1000006];
void Tcmduc_VOI26()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i]>>z[i];
mau[z[i]].push_back(i);
}
cin>>xKien>>yKien>>xThanh>>yThanh;
for(int i=1;i<=n;i++)
{
Kien[i]={Dist(x[i],y[i],xKien,yKien),i};
Thanh[i]={Dist(x[i],y[i],xThanh,yThanh),i};
ThanhVal[i]=Dist(x[i],y[i],xThanh,yThanh);
}
sort(Kien+1,Kien+n+1);
sort(Thanh+1,Thanh+n+1);
sort(ThanhVal+1,ThanhVal+n+1);
for(int i=1;i<=n;i++)ThanhId[Thanh[i].se]=i;
cin>>q;
for(int i=1;i<=q;i++)
{
cin>>Q[i].r1>>Q[i].r2;Q[i].id=i;
Q[i].r1*=Q[i].r1;Q[i].r2*=Q[i].r2;
}
sort(Q+1,Q+q+1);
int cur=1;
BIT=new Fenwick(n);
for(int i=1;i<=1000000;i++)
{
int mi=oo,id=0;
for(int idd:mau[i])
{
if(mi>Dist(x[idd],y[idd],xThanh,yThanh))
{
mi=Dist(x[idd],y[idd],xThanh,yThanh);
id=idd;
}
}
if(mi!=oo)
{
BIT->Update(ThanhId[id],1);
miid[i]=id;
}
}
int dem=0;
for(int i=1;i<=q;i++)
{
while(cur<=n&&Kien[cur].fi<=Q[i].r1)
{
int id=ThanhId[Kien[cur].se];
if(!pass[z[Kien[cur].se]])
{
dem++;
BIT->Update(ThanhId[miid[z[Kien[cur].se]]],-1);
pass[z[Kien[cur].se]]=true;
}
cur++;
}
int id=upper_bound(ThanhVal+1,ThanhVal+n+1,Q[i].r2)-ThanhVal-1;
kq[Q[i].id]=dem+BIT->Get(id);
}
for(int i=1;i<=q;i++)cout<<kq[i]<<'\n';
}
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);home();
while(Test--)Tcmduc_VOI26();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsb25nIGxvbmcgb289MWUxODsKY29uc3QgaW50IG1vZD0xZTkrNzsKY29uc3QgaW50IGJhc2U9MzE7CmludCBUZXN0PTE7CnZvaWQgaG9tZSgpCnsKICAgIGlmKGZvcGVuKCJtYWluLmlucCIsInIiKSkgCiAgICBmcmVvcGVuKCJtYWluLmlucCIsInIiLHN0ZGluKSwKICAgIGZyZW9wZW4oIm1haW4ub3V0IiwidyIsc3Rkb3V0KTsKfQpib29sIGJpdChpbnQgbWFzayxpbnQgaSl7cmV0dXJuIChtYXNrPj5pKSYxO30Kc3RydWN0IEZlbndpY2sKewogICAgaW50IG47dmVjdG9yPGludD5mOwogICAgRmVud2ljayhpbnQgX24pOm4oX24pe2YucmVzaXplKG4rNSk7fQogICAgdm9pZCBVcGRhdGUoaW50IGlkLGludCB2YWwpCiAgICB7CiAgICAgICAgZm9yKDtpZDw9bjtpZCs9aWQmLWlkKQogICAgICAgICAgICBmW2lkXSs9dmFsOwogICAgfQogICAgaW50IEdldChpbnQgaWQpCiAgICB7CiAgICAgICAgaW50IGQ9MDsKICAgICAgICBmb3IoO2lkO2lkLT1pZCYtaWQpCiAgICAgICAgICAgIGQrPWZbaWRdOwogICAgICAgIHJldHVybiBkOwogICAgfQp9KkJJVDsKaW50IERpc3QoaW50IHgsaW50IHksaW50IHUsaW50IHYpCnsKICAgIHJldHVybiAoeC11KSooeC11KSsodi15KSoodi15KTsKfQpwYWlyPGludCxpbnQ+S2llblsxMDAwMDA2XTsKcGFpcjxpbnQsaW50PlRoYW5oWzEwMDAwMDZdOwppbnQgbixxOwppbnQgeFsxMDAwMDA2XSx5WzEwMDAwMDZdLHpbMTAwMDAwNl07CmludCB4S2llbix5S2llbix4VGhhbmgseVRoYW5oOwppbnQgVGhhbmhJZFsxMDAwMDA2XSxUaGFuaFZhbFsxMDAwMDA2XTsKCnN0cnVjdCBRdWVyeQp7CiAgICBpbnQgcjEscjIsaWQ7CiAgICBib29sIG9wZXJhdG9yPChjb25zdCBRdWVyeSAmb3QpY29uc3R7cmV0dXJuIHIxPG90LnIxO30KfVFbMTAwMDAwNl07CmludCBrcVsxMDAwMDA2XTsKdmVjdG9yPGludD5tYXVbMTAwMDAwNl07aW50IG1paWRbMTAwMDAwNl07CmJvb2wgcGFzc1sxMDAwMDA2XTsKdm9pZCBUY21kdWNfVk9JMjYoKQp7CiAgICBjaW4+Pm47CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBjaW4+PnhbaV0+PnlbaV0+PnpbaV07CiAgICAgICAgbWF1W3pbaV1dLnB1c2hfYmFjayhpKTsKICAgIH0KICAgIGNpbj4+eEtpZW4+PnlLaWVuPj54VGhhbmg+PnlUaGFuaDsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIEtpZW5baV09e0Rpc3QoeFtpXSx5W2ldLHhLaWVuLHlLaWVuKSxpfTsKICAgICAgICBUaGFuaFtpXT17RGlzdCh4W2ldLHlbaV0seFRoYW5oLHlUaGFuaCksaX07CiAgICAgICAgVGhhbmhWYWxbaV09RGlzdCh4W2ldLHlbaV0seFRoYW5oLHlUaGFuaCk7CiAgICB9CiAgICBzb3J0KEtpZW4rMSxLaWVuK24rMSk7CiAgICBzb3J0KFRoYW5oKzEsVGhhbmgrbisxKTsKICAgIHNvcnQoVGhhbmhWYWwrMSxUaGFuaFZhbCtuKzEpOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspVGhhbmhJZFtUaGFuaFtpXS5zZV09aTsKICAgIGNpbj4+cTsKICAgIGZvcihpbnQgaT0xO2k8PXE7aSsrKQogICAgewogICAgICAgIGNpbj4+UVtpXS5yMT4+UVtpXS5yMjtRW2ldLmlkPWk7CiAgICAgICAgUVtpXS5yMSo9UVtpXS5yMTtRW2ldLnIyKj1RW2ldLnIyOwogICAgfQogICAgc29ydChRKzEsUStxKzEpOwogICAgaW50IGN1cj0xOwogICAgQklUPW5ldyBGZW53aWNrKG4pOwogICAgZm9yKGludCBpPTE7aTw9MTAwMDAwMDtpKyspCiAgICB7CiAgICAgICAgaW50IG1pPW9vLGlkPTA7CiAgICAgICAgZm9yKGludCBpZGQ6bWF1W2ldKQogICAgICAgIHsKICAgICAgICAgICAgaWYobWk+RGlzdCh4W2lkZF0seVtpZGRdLHhUaGFuaCx5VGhhbmgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtaT1EaXN0KHhbaWRkXSx5W2lkZF0seFRoYW5oLHlUaGFuaCk7CiAgICAgICAgICAgICAgICBpZD1pZGQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYobWkhPW9vKQogICAgICAgIHsKICAgICAgICAgICAgQklULT5VcGRhdGUoVGhhbmhJZFtpZF0sMSk7CiAgICAgICAgICAgIG1paWRbaV09aWQ7CiAgICAgICAgfQogICAgfQogICAgaW50IGRlbT0wOwogICAgZm9yKGludCBpPTE7aTw9cTtpKyspCiAgICB7CiAgICAgICAgd2hpbGUoY3VyPD1uJiZLaWVuW2N1cl0uZmk8PVFbaV0ucjEpCiAgICAgICAgewogICAgICAgICAgICBpbnQgaWQ9VGhhbmhJZFtLaWVuW2N1cl0uc2VdOwogICAgICAgICAgICBpZighcGFzc1t6W0tpZW5bY3VyXS5zZV1dKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZW0rKzsKICAgICAgICAgICAgICAgIEJJVC0+VXBkYXRlKFRoYW5oSWRbbWlpZFt6W0tpZW5bY3VyXS5zZV1dXSwtMSk7CiAgICAgICAgICAgICAgICBwYXNzW3pbS2llbltjdXJdLnNlXV09dHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXIrKzsKICAgICAgICB9CiAgICAgICAgaW50IGlkPXVwcGVyX2JvdW5kKFRoYW5oVmFsKzEsVGhhbmhWYWwrbisxLFFbaV0ucjIpLVRoYW5oVmFsLTE7CiAgICAgICAga3FbUVtpXS5pZF09ZGVtK0JJVC0+R2V0KGlkKTsKICAgIH0KICAgIGZvcihpbnQgaT0xO2k8PXE7aSsrKWNvdXQ8PGtxW2ldPDwnXG4nOwp9CnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApO2hvbWUoKTsKICAgIHdoaWxlKFRlc3QtLSlUY21kdWNfVk9JMjYoKTsKICAgIHJldHVybiAwOwp9