#include <bits/stdc++.h>
using namespace std;
struct Fenwick {
int n;
vector<int> bit;
Fenwick(int n): n(n), bit(n+1,0) {}
void update(int i,int val){
for(;i<=n;i+=i&-i) bit[i]=max(bit[i],val);
}
int query(int i){
int res=0;
for(;i>0;i-=i&-i) res=max(res,bit[i]);
return res;
}
};
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N; cin>>N;
vector<pair<int,int>> dolls(N);
for(int i=0;i<N;i++) cin>>dolls[i].first>>dolls[i].second;
int Q; cin>>Q;
vector<tuple<int,int,int>> queries(Q);
for(int i=0;i<Q;i++){
int A,B; cin>>A>>B;
queries[i]= {A,B,i};
}
vector<int> vals;
for(auto &p:dolls) vals.push_back(p.second);
for(auto &q:queries) vals.push_back(get<1>(q));
sort(vals.begin(),vals.end());
vals.erase(unique(vals.begin(),vals.end()),vals.end());
auto compress=[&](int x){
return int(lower_bound(vals.begin(),vals.end(),x)-vals.begin())+1;
};
vector<array<int,3>> D;
for(auto &p:dolls) D.push_back({p.first,compress(p.second),p.second});
sort(D.begin(),D.end(),[&](auto &a,auto &b){
if(a[0]!=b[0]) return a[0]>b[0];
return a[2]>b[2];
});
vector<array<int,4>> Qs;
for(auto &q:queries){
int A,B,id; tie(A,B,id)=q;
Qs.push_back({A,compress(B),B,id});
}
sort(Qs.begin(),Qs.end(),[&](auto &a,auto &b){return a[0]>b[0];});
Fenwick bit(vals.size());
vector<int> ans(Q);
int idx=0;
for(auto &qq:Qs){
int A=qq[0],B=qq[1],id=qq[3];
while(idx<N && D[idx][0]>=A){
int h=D[idx][1];
int best=bit.query(h-1)+1;
bit.update(h,best);
idx++;
}
ans[id]=bit.query(B);
}
for(int x:ans) cout<<x<<"\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgRmVud2ljayB7CiAgICBpbnQgbjsKICAgIHZlY3RvcjxpbnQ+IGJpdDsKICAgIEZlbndpY2soaW50IG4pOiBuKG4pLCBiaXQobisxLDApIHt9CiAgICB2b2lkIHVwZGF0ZShpbnQgaSxpbnQgdmFsKXsKICAgICAgICBmb3IoO2k8PW47aSs9aSYtaSkgYml0W2ldPW1heChiaXRbaV0sdmFsKTsKICAgIH0KICAgIGludCBxdWVyeShpbnQgaSl7CiAgICAgICAgaW50IHJlcz0wOwogICAgICAgIGZvcig7aT4wO2ktPWkmLWkpIHJlcz1tYXgocmVzLGJpdFtpXSk7CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KfTsKCmludCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgaW50IE47IGNpbj4+TjsKICAgIHZlY3RvcjxwYWlyPGludCxpbnQ+PiBkb2xscyhOKTsKICAgIGZvcihpbnQgaT0wO2k8TjtpKyspIGNpbj4+ZG9sbHNbaV0uZmlyc3Q+PmRvbGxzW2ldLnNlY29uZDsKICAgIGludCBROyBjaW4+PlE7CiAgICB2ZWN0b3I8dHVwbGU8aW50LGludCxpbnQ+PiBxdWVyaWVzKFEpOwogICAgZm9yKGludCBpPTA7aTxRO2krKyl7CiAgICAgICAgaW50IEEsQjsgY2luPj5BPj5COwogICAgICAgIHF1ZXJpZXNbaV09IHtBLEIsaX07CiAgICB9CiAgICB2ZWN0b3I8aW50PiB2YWxzOwogICAgZm9yKGF1dG8gJnA6ZG9sbHMpIHZhbHMucHVzaF9iYWNrKHAuc2Vjb25kKTsKICAgIGZvcihhdXRvICZxOnF1ZXJpZXMpIHZhbHMucHVzaF9iYWNrKGdldDwxPihxKSk7CiAgICBzb3J0KHZhbHMuYmVnaW4oKSx2YWxzLmVuZCgpKTsKICAgIHZhbHMuZXJhc2UodW5pcXVlKHZhbHMuYmVnaW4oKSx2YWxzLmVuZCgpKSx2YWxzLmVuZCgpKTsKICAgIGF1dG8gY29tcHJlc3M9WyZdKGludCB4KXsKICAgICAgICByZXR1cm4gaW50KGxvd2VyX2JvdW5kKHZhbHMuYmVnaW4oKSx2YWxzLmVuZCgpLHgpLXZhbHMuYmVnaW4oKSkrMTsKICAgIH07CiAgICB2ZWN0b3I8YXJyYXk8aW50LDM+PiBEOwogICAgZm9yKGF1dG8gJnA6ZG9sbHMpIEQucHVzaF9iYWNrKHtwLmZpcnN0LGNvbXByZXNzKHAuc2Vjb25kKSxwLnNlY29uZH0pOwogICAgc29ydChELmJlZ2luKCksRC5lbmQoKSxbJl0oYXV0byAmYSxhdXRvICZiKXsKICAgICAgICBpZihhWzBdIT1iWzBdKSByZXR1cm4gYVswXT5iWzBdOwogICAgICAgIHJldHVybiBhWzJdPmJbMl07CiAgICB9KTsKICAgIHZlY3RvcjxhcnJheTxpbnQsND4+IFFzOwogICAgZm9yKGF1dG8gJnE6cXVlcmllcyl7CiAgICAgICAgaW50IEEsQixpZDsgdGllKEEsQixpZCk9cTsKICAgICAgICBRcy5wdXNoX2JhY2soe0EsY29tcHJlc3MoQiksQixpZH0pOwogICAgfQogICAgc29ydChRcy5iZWdpbigpLFFzLmVuZCgpLFsmXShhdXRvICZhLGF1dG8gJmIpe3JldHVybiBhWzBdPmJbMF07fSk7CiAgICBGZW53aWNrIGJpdCh2YWxzLnNpemUoKSk7CiAgICB2ZWN0b3I8aW50PiBhbnMoUSk7CiAgICBpbnQgaWR4PTA7CiAgICBmb3IoYXV0byAmcXE6UXMpewogICAgICAgIGludCBBPXFxWzBdLEI9cXFbMV0saWQ9cXFbM107CiAgICAgICAgd2hpbGUoaWR4PE4gJiYgRFtpZHhdWzBdPj1BKXsKICAgICAgICAgICAgaW50IGg9RFtpZHhdWzFdOwogICAgICAgICAgICBpbnQgYmVzdD1iaXQucXVlcnkoaC0xKSsxOwogICAgICAgICAgICBiaXQudXBkYXRlKGgsYmVzdCk7CiAgICAgICAgICAgIGlkeCsrOwogICAgICAgIH0KICAgICAgICBhbnNbaWRdPWJpdC5xdWVyeShCKTsKICAgIH0KICAgIGZvcihpbnQgeDphbnMpIGNvdXQ8PHg8PCJcbiI7Cn0K