#include using namespace std; int main(){ int N,Q; cin >> N; vector A(N),B(N); vector> c(100001,vector(0));//分野別に問題を入れる配列 for(int i = 0; i < N; i++){ cin >> A[i] >> B[i]; c[B[i]].push_back(A[i]); } for(int i = 0; i < 100000; i++){ sort(c[i].begin(),c[i].end()); } sort(A.begin(),A.end());//ソート cin >> Q; for(int i = 0; i < Q; i++){ int X,Y; cin >> X >> Y; int ans = 0; int ok = -1, ng = N;//少なくともok番目まではX以下,少なくともng番目からはXより大きい while(abs(ok - ng) > 1){//まずAで二分探索をする int mid = (ok + ng) / 2; if(A[mid] <= X)ok = mid; else ng = mid; } ans = ok + 1; ok = -1, ng = c[Y].size(); while(abs(ok - ng) > 1){//次に分野Yだけの配列で二分探索をする int mid = (ok + ng) / 2; if(c[Y][mid] <= X)ok = mid; else ng = mid; } ans -= ok + 1; cout << ans << endl; } return 0; }