func_code_string: #include <bits/stdc++.h>   using namespace std;   long long pw(long long base, long long e) {     return e ? pw(base * base, e / 2) * (e % 2 ? base : 1) : 1;   }   const int maxn = 1e6 + 10, mod = 1e9 + 7, maxlg = 21, lim = 1e6;   const long long INF = 1e9;   long long fen[maxn];   vector<int> r[maxn];   int n;   int ans[maxn];   pair<int, int> a[maxn];   vector<pair<int, int> > query[maxn];   void update(int ind) {     for (; ind < maxn; ind += ind & -ind) {       fen[ind]++;     }   }   int get(int ind) {     long long res = 0;     for (; ind; ind -= ind & -ind) {       res += fen[ind];     }     return res;   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int q, cnt, m;     cin >> n >> q;     for (int i = 0; i < n; i++) {       cin >> a[i].first >> a[i].second;       r[a[i].second].push_back(a[i].first);     }     for (int j = 0; j < q; j++) {       cin >> m;       int prev, cur;       prev = 0;       while (m--) {         cin >> cur;         if (cur - prev > 1) {           query[cur - 1].push_back({prev + 1, j});         }         prev = cur;       }       if (lim > prev) {         query[lim].push_back({prev + 1, j});       }     }     for (int i = 1; i <= lim; i++) {       if (r[i].size()) {         for (auto l : r[i]) {           update(l);         }       }       if (query[i].size()) {         int val = get(i);         for (auto d : query[i]) {           ans[d.second] += val - get(d.first - 1);         }       }     }     for (int i = 0; i < q; i++) {       cout << n - ans[i] <<   n ;     }   }   