#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
const int inf = 1e6 + 1;
vector<int> t[2 * inf];
void build() {
  for (int i = inf - 1; i > 0; --i) {
    t[i].resize(t[i << 1].size() + t[i << 1 | 1].size());
    merge(t[i << 1].begin(), t[i << 1].end(), t[i << 1 | 1].begin(),
          t[i << 1 | 1].end(), t[i].begin());
  }
}
int query(int L, int R) {
  int ans = 0;
  for (int l = L + inf, r = R + inf; l < r; l >>= 1, r >>= 1) {
    if (l & 1)
      ans += lower_bound(t[l].begin(), t[l].end(), R) - t[l].begin(), ++l;
    if (r & 1)
      --r, ans += lower_bound(t[r].begin(), t[r].end(), R) - t[r].begin();
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n, m;
  cin >> n >> m;
  vector<pair<int, int> > seg(n);
  for (pair<int, int>& i : seg) cin >> i.first >> i.second;
  sort(seg.begin(), seg.end());
  for (auto i : seg) t[i.first + inf].push_back(i.second);
  build();
  while (m--) {
    int cnt, ans = n, p = -1;
    cin >> cnt;
    while (cnt--) {
      int x;
      cin >> x;
      ans -= query(p + 1, x);
      p = x;
    }
    ans -= query(p + 1, inf);
    cout << ans << '\n';
  }
  return 0;
}
