#include <bits/stdc++.h>
using namespace std;
const int mx = 1e6 + 6, N = 1e6 + 1;
int n, m;
vector<int> letva[mx];
vector<pair<int, int>> upit[mx];
int kumulativna_tabela[mx];
vector<int> reset_index;
int add(int pos, int val) {
  if (val == 1) reset_index.push_back(pos);
  while (pos <= N) {
    kumulativna_tabela[pos] += val;
    pos += pos & -pos;
  }
  return 0;
}
int sum(int pos) {
  int ret = 0;
  while (pos >= 1) {
    ret += kumulativna_tabela[pos];
    pos -= pos & -pos;
  }
  return ret;
}
void reset() {
  for (auto pos : reset_index) {
    add(pos, -1);
  }
  reset_index.clear();
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    int l, r;
    cin >> l >> r;
    letva[r].push_back(l);
  }
  for (int t = 0; t < m; t++) {
    int k;
    cin >> k;
    vector<int> p;
    p.push_back(0);
    for (int i = 0; i < k; i++) {
      int x;
      cin >> x;
      p.push_back(x);
    }
    p.push_back(N);
    for (int i = 1; i <= k + 1; i++)
      upit[p[i] - 1].push_back({p[i - 1] + 1, t});
  }
  vector<int> ans(m);
  for (int i = 1; i < N; i++) {
    for (auto x : letva[i]) add(x, 1);
    for (auto x : upit[i]) ans[x.second] += sum(N) - sum(x.first - 1);
  }
  for (auto x : ans) cout << n - x << '\n';
}
