#include using namespace std; template vector merge_and_unique(const vector &a, const Vs &...z) { vector res = a; (res.insert(res.end(), z.begin(), z.end()), ...); sort(res.begin(), res.end()); res.erase(unique(res.begin(), res.end()), res.end()); return res; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector A(N), B(N); for (int i = 0; i < N; i++) cin >> A[i] >> B[i]; vector ord(N); iota(ord.begin(), ord.end(), 0); sort(ord.begin(), ord.end(), [&](int i, int j) { return A[i] < A[j]; }); { vector AA(N), BB(N); for (int i = 0; i < N; i++) { AA[i] = A[ord[i]]; BB[i] = B[ord[i]]; } A = AA; B = BB; } vector> T(1 << 17); for (int i = 0; i < N; i++) { T[B[i]].push_back(i); } int Q; cin >> Q; while (Q--) { int x, y; cin >> x >> y; int ans = upper_bound(A.begin(), A.end(), x) - A.begin(); ans -= lower_bound(T[y].begin(), T[y].end(), ans) - T[y].begin(); cout << ans << '\n'; } }