#include <bits/stdc++.h>
#include <time.h>
#define min(a,b) (a<b?(a):(b))
#define max(a,b) (a>b?(a):(b))
#define lli long long
#define clr(a,b) memset(a,b,sizeof(a))
#define getcx getchar_unlocked
#define S(a) scanf("%d",&a);
#define SL(a) scanf("%lld",&a);
#define SS(a) scanf("%s",a);
#define PV(v) { for(int i=0;i<v.size();i++) printf("%d ",v[i]);printf("\n"); }
#define FOR(i,n) for(int i=0;i<n;i++)
#define REP(i,j,n) for(int i=j;i<n;i++)
void fscani(int *x)
{
int n=0;int sign=1;char c=getcx();
while(c<'0' || c>'9'){if(c=='-') sign=-1;c=getcx();}
while(c>='0' && c<='9'){n=(n<<1)+(n<<3)+(c-'0');c=getcx();}
n=n*sign;*x=n;
}
void fscanl(lli *x)
{
lli n=0;int sign=1;char c=getcx();
while(c<'0' || c>'9'){if(c=='-') sign=-1; c=getcx();}
while(c>='0' && c<='9') {n=(n<<1)+(n<<3)+(c-'0');c=getcx();}
n=n*sign;*x=n;
}
//Constants
#define INF int(2e9)
#define INFL ((lli)(9e18))
#define MOD int(1e9 + 7)
//General STL
#define tr(cont,it) for(typeof(cont.begin()) it = cont.begin();it!=cont.end();it++)
//Bitwise
#define chkbit(s, b) (s & ((lli)1<<b))
#define setbit(s, b) (s |= ((lli)1<<b))
#define clrbit(s, b) (s &= ~(1<<b))
//Vector
#define vi vector<int>
#define vii vector<pair<int,int> >
#define pb push_back
//Pair
#define ii pair<int,int>
#define lili pair<long long,long long>
#define mp make_pair
//Error Check
#define chk(a) cout << #a << " : " << a << endl
#define chk2(a,b) cout << endl << #a << " : " << a << "\t" << #b << " : " << b << endl
#define chk3(a,b,c) cout << endl << #a << " : " << a << "\t" << #b << " : " << b << "\t" << #c << " : " << c << endl
#define chk4(a,b,c,d) cout << endl << #a << " : " << a << "\t" << #b << " : " << b << "\t" << #c << " : " << c << "\t" << #d << " : " << d << endl
#define gc getchar();
using namespace std;
int dp[6010][6010];
vi mapx,mapy;
int find(int x,int y)
{
int fx = lower_bound(mapx.begin(),mapx.end(),x) - mapx.begin();
int fy = lower_bound(mapy.begin(),mapy.end(),y) - mapy.begin();
// cout << fx << " , " << fy << " = " << dp[fx][fy] << endl;
return dp[fx][fy];
}
int main(int argc,char *argv[])
{
int t=1;
REP(z,1,t+1)
{
int n; cin >> n; //Number of points
vector<ii > v;
set<ii> s;
FOR(i,n) { int x,y; cin >> x >> y ; v.pb(ii(x,y));s.insert(ii(x,y)); }
assert ( v.size() == s.size());
set<int> vx,vy;
FOR(i,n) { vx.insert(v[i].first); vy.insert(v[i].second); }
int pre = -1;
fprintf(stderr,"----Input Done\n");
tr(vx,it)
{
if(pre < *it-1)
mapx.pb(*it-1);
mapx.pb(*it);
pre = *it;
}
mapx.pb(2147483642);
pre = -1;
tr(vy,it)
{
if(pre < *it - 1)
mapy.pb(*it-1);
mapy.pb(*it);
pre = *it;
}
mapy.pb(2147483642);
FOR(i,mapx.size())
{
dp[i][0] = 0;
}
FOR(i,mapy.size())
{
dp[0][i] = 0;
}
FOR(i,v.size())
{
dp[lower_bound(mapx.begin(),mapx.end(),v[i].first) - mapx.begin()][lower_bound(mapy.begin(),mapy.end(),v[i].second) - mapy.begin()] = 1;
}
REP(i,1,mapx.size())
REP(j,1,mapy.size())
{
dp[i][j] = dp[i][j] + dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1];
}
fprintf(stderr,"----Preprocessing Done\n");
int q;
cin >> q;
// chk(q);
FOR(i,q)
{
int x,y,k;
cin >> x >> y >> k;
if (k > n)
{
cout << -1 << endl;
continue;
}
int ans = 0;
lli beg = 0, end = 1000000100;
while(beg <= end)
{
// chk2(beg,end);
lli mid = (beg + end) / 2;
int curAns = find(x+mid,y+mid) - find(x-mid-1,y+mid) - find(x+mid,y-mid-1) + find(x-mid-1,y-mid-1);
// chk2(mid,curAns);
// mid--;
// int preAns = find(x+mid,y+mid) - find(x-mid-1,y+mid) - find(x+mid,y-mid-1) + find(x-mid-1,y-mid-1);
// mid++;
if(curAns >= k)
{
ans = mid;
end = mid-1;
}
else
beg = mid+1;
}
cout << ans << endl;
// if(i%10000==0)
// fprintf(stderr,"----Query %d Processed\n",i);
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNkZWZpbmUgbWluKGEsYikgICAgKGE8Yj8oYSk6KGIpKQojZGVmaW5lIG1heChhLGIpICAgIChhPmI/KGEpOihiKSkKI2RlZmluZSBsbGkgICAgICAgICBsb25nIGxvbmcKI2RlZmluZSBjbHIoYSxiKSAgICBtZW1zZXQoYSxiLHNpemVvZihhKSkKI2RlZmluZSBnZXRjeCAJICAgIGdldGNoYXJfdW5sb2NrZWQKCiNkZWZpbmUgUyhhKSAgICAgICAgc2NhbmYoIiVkIiwmYSk7CiNkZWZpbmUgU0woYSkgICAgICAgc2NhbmYoIiVsbGQiLCZhKTsKI2RlZmluZSBTUyhhKSAgICAgICBzY2FuZigiJXMiLGEpOwojZGVmaW5lIFBWKHYpICAgICAgIHsgZm9yKGludCBpPTA7aTx2LnNpemUoKTtpKyspIHByaW50ZigiJWQgIix2W2ldKTtwcmludGYoIlxuIik7IH0KI2RlZmluZSBGT1IoaSxuKSAgICBmb3IoaW50IGk9MDtpPG47aSsrKQojZGVmaW5lIFJFUChpLGosbikgIGZvcihpbnQgaT1qO2k8bjtpKyspCgp2b2lkIGZzY2FuaShpbnQgKngpCnsKCWludCBuPTA7aW50IHNpZ249MTtjaGFyIGM9Z2V0Y3goKTsKCXdoaWxlKGM8JzAnIHx8IGM+JzknKXtpZihjPT0nLScpIHNpZ249LTE7Yz1nZXRjeCgpO30KCXdoaWxlKGM+PScwJyAmJiBjPD0nOScpe249KG48PDEpKyhuPDwzKSsoYy0nMCcpO2M9Z2V0Y3goKTt9CgluPW4qc2lnbjsqeD1uOwp9CnZvaWQgZnNjYW5sKGxsaSAqeCkKewoJbGxpIG49MDtpbnQgc2lnbj0xO2NoYXIgYz1nZXRjeCgpOwoJd2hpbGUoYzwnMCcgfHwgYz4nOScpe2lmKGM9PSctJykgc2lnbj0tMTsJYz1nZXRjeCgpO30KCXdoaWxlKGM+PScwJyAmJiBjPD0nOScpCXtuPShuPDwxKSsobjw8MykrKGMtJzAnKTtjPWdldGN4KCk7fQoJbj1uKnNpZ247Kng9bjsKfQoKCgoKLy9Db25zdGFudHMKI2RlZmluZSBJTkYgICAgIGludCgyZTkpCiNkZWZpbmUgSU5GTCAgICAoKGxsaSkoOWUxOCkpCiNkZWZpbmUgTU9EICAgICBpbnQoMWU5ICsgNykKCi8vR2VuZXJhbCBTVEwKI2RlZmluZSB0cihjb250LGl0KSAgICAgZm9yKHR5cGVvZihjb250LmJlZ2luKCkpIGl0ID0gY29udC5iZWdpbigpO2l0IT1jb250LmVuZCgpO2l0KyspCgovL0JpdHdpc2UKI2RlZmluZSBjaGtiaXQocywgYikgICAgKHMgJiAoKGxsaSkxPDxiKSkKI2RlZmluZSBzZXRiaXQocywgYikgICAgKHMgfD0gKChsbGkpMTw8YikpCiNkZWZpbmUgY2xyYml0KHMsIGIpICAgIChzICY9IH4oMTw8YikpCgovL1ZlY3RvcgojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdmlpIHZlY3RvcjxwYWlyPGludCxpbnQ+ID4KI2RlZmluZSBwYiBwdXNoX2JhY2sKCi8vUGFpcgojZGVmaW5lIGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBsaWxpIHBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz4KI2RlZmluZSBtcCBtYWtlX3BhaXIKCi8vRXJyb3IgQ2hlY2sKI2RlZmluZSBjaGsoYSkgICAgICAJY291dCA8PCAjYSA8PCAiIDogIiA8PCBhIDw8IGVuZGwKI2RlZmluZSBjaGsyKGEsYikgICAJY291dCA8PCBlbmRsIDw8ICNhIDw8ICIgOiAiIDw8IGEgPDwgIlx0IiA8PCAjYiA8PCAiIDogIiA8PCBiIDw8IGVuZGwKI2RlZmluZSBjaGszKGEsYixjKSAgICAgY291dCA8PCBlbmRsIDw8ICNhIDw8ICIgOiAiIDw8IGEgPDwgIlx0IiA8PCAjYiA8PCAiIDogIiA8PCBiIDw8ICJcdCIgPDwgI2MgPDwgIiA6ICIgPDwgYyA8PCBlbmRsCiNkZWZpbmUgY2hrNChhLGIsYyxkKSAgIGNvdXQgPDwgZW5kbCA8PCAjYSA8PCAiIDogIiA8PCBhIDw8ICJcdCIgPDwgI2IgPDwgIiA6ICIgPDwgYiA8PCAiXHQiIDw8ICNjIDw8ICIgOiAiIDw8IGMgPDwgIlx0IiA8PCAjZCA8PCAiIDogIiA8PCBkIDw8IGVuZGwKI2RlZmluZSBnYyAgICAgIAlnZXRjaGFyKCk7Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgZHBbNjAxMF1bNjAxMF07CnZpIG1hcHgsbWFweTsKCmludCBmaW5kKGludCB4LGludCB5KQp7CglpbnQgZnggPSBsb3dlcl9ib3VuZChtYXB4LmJlZ2luKCksbWFweC5lbmQoKSx4KSAtIG1hcHguYmVnaW4oKTsKCWludCBmeSA9IGxvd2VyX2JvdW5kKG1hcHkuYmVnaW4oKSxtYXB5LmVuZCgpLHkpIC0gbWFweS5iZWdpbigpOwoJLy8gY291dCA8PCBmeCA8PCAiICwgIiA8PCBmeSA8PCAiID0gIiA8PCBkcFtmeF1bZnldICA8PCBlbmRsOwoJcmV0dXJuIGRwW2Z4XVtmeV07Cn0KCmludCBtYWluKGludCBhcmdjLGNoYXIgKmFyZ3ZbXSkKewoJaW50IHQ9MTsKCVJFUCh6LDEsdCsxKQoJewoJCWludCBuOyBjaW4gPj4gbjsgLy9OdW1iZXIgb2YgcG9pbnRzCgkJdmVjdG9yPGlpID4gdjsKCQlzZXQ8aWk+IHM7CgkJRk9SKGksbikgeyBpbnQgeCx5OyBjaW4gPj4geCA+PiB5IDsgdi5wYihpaSh4LHkpKTtzLmluc2VydChpaSh4LHkpKTsgfQoJCWFzc2VydCAoIHYuc2l6ZSgpID09IHMuc2l6ZSgpKTsKCQlzZXQ8aW50PiB2eCx2eTsKCQlGT1IoaSxuKSB7IHZ4Lmluc2VydCh2W2ldLmZpcnN0KTsgdnkuaW5zZXJ0KHZbaV0uc2Vjb25kKTsgfQoJCWludCBwcmUgPSAtMTsKCQlmcHJpbnRmKHN0ZGVyciwiLS0tLUlucHV0IERvbmVcbiIpOwoJCXRyKHZ4LGl0KQoJCXsKCQkJaWYocHJlIDwgKml0LTEpCgkJCQltYXB4LnBiKCppdC0xKTsKCQkJbWFweC5wYigqaXQpOwoJCQlwcmUgPSAqaXQ7CgkJfQoJCW1hcHgucGIoMjE0NzQ4MzY0Mik7CgkJcHJlID0gLTE7CgkJdHIodnksaXQpCgkJewoJCQlpZihwcmUgPCAqaXQgLSAxKQoJCQkJbWFweS5wYigqaXQtMSk7CgkJCW1hcHkucGIoKml0KTsKCQkJcHJlID0gKml0OwoJCX0KCQltYXB5LnBiKDIxNDc0ODM2NDIpOwoJCUZPUihpLG1hcHguc2l6ZSgpKQoJCXsKCQkJZHBbaV1bMF0gPSAwOwoJCX0JCQoJCUZPUihpLG1hcHkuc2l6ZSgpKQoJCXsKCQkJZHBbMF1baV0gPSAwOwoJCX0KCQlGT1IoaSx2LnNpemUoKSkKCQl7CgkJCWRwW2xvd2VyX2JvdW5kKG1hcHguYmVnaW4oKSxtYXB4LmVuZCgpLHZbaV0uZmlyc3QpIC0gbWFweC5iZWdpbigpXVtsb3dlcl9ib3VuZChtYXB5LmJlZ2luKCksbWFweS5lbmQoKSx2W2ldLnNlY29uZCkgLSBtYXB5LmJlZ2luKCldID0gMTsKCQl9CgkJUkVQKGksMSxtYXB4LnNpemUoKSkKCQkJUkVQKGosMSxtYXB5LnNpemUoKSkKCQkJewoJCQkJZHBbaV1bal0gPSBkcFtpXVtqXSArIGRwW2ktMV1bal0gKyBkcFtpXVtqLTFdIC0gZHBbaS0xXVtqLTFdOwoJCQl9CgkJZnByaW50ZihzdGRlcnIsIi0tLS1QcmVwcm9jZXNzaW5nIERvbmVcbiIpOwoJCWludCBxOwoJCWNpbiA+PiBxOwoJCS8vIGNoayhxKTsKCQlGT1IoaSxxKQoJCXsKCQkJaW50IHgseSxrOwoJCQljaW4gPj4geCA+PiB5ID4+IGs7CgkJCWlmIChrID4gbikKCQkJewoJCQkJY291dCA8PCAtMSA8PCBlbmRsOwoJCQkJY29udGludWU7CgkJCX0KCQkJaW50IGFucyA9IDA7CgkJCWxsaSBiZWcgPSAwLCBlbmQgPSAxMDAwMDAwMTAwOwoJCSAgICAgICAJd2hpbGUoYmVnIDw9IGVuZCkKCQkJewoJCQkJIC8vIGNoazIoYmVnLGVuZCk7CgkJCQlsbGkgbWlkID0gKGJlZyArIGVuZCkgLyAyOwoJCQkJaW50IGN1ckFucyA9IGZpbmQoeCttaWQseSttaWQpIC0gZmluZCh4LW1pZC0xLHkrbWlkKSAtIGZpbmQoeCttaWQseS1taWQtMSkgKyBmaW5kKHgtbWlkLTEseS1taWQtMSk7CgkJCQkvLyBjaGsyKG1pZCxjdXJBbnMpOwoJCQkJLy8gbWlkLS07CgkJCQkvLyBpbnQgcHJlQW5zID0gZmluZCh4K21pZCx5K21pZCkgLSBmaW5kKHgtbWlkLTEseSttaWQpIC0gZmluZCh4K21pZCx5LW1pZC0xKSArIGZpbmQoeC1taWQtMSx5LW1pZC0xKTsKCQkJCS8vIG1pZCsrOwoJCQkJaWYoY3VyQW5zID49IGspIAoJCQkJewoJCQkJCWFucyA9IG1pZDsKCQkJCQllbmQgPSBtaWQtMTsKCQkJCX0KCQkJCWVsc2UgCgkJCQkJYmVnID0gbWlkKzE7CgkJCX0KCQkJY291dCA8PCBhbnMgPDwgZW5kbDsKCQkJLy8gaWYoaSUxMDAwMD09MCkKCQkJLy8gZnByaW50ZihzdGRlcnIsIi0tLS1RdWVyeSAlZCBQcm9jZXNzZWRcbiIsaSk7CgkJfQoJfQoJcmV0dXJuIDA7CiB9Cg==