#include <bits/stdc++.h>
using namespace std;
int const MN = 3e5 + 100, MS = 4 * MN + 100, ML = 25;
int n, m;
int seg[ML][MS], k[MN];
pair<int, int> baz[MN];
void bld(int l = 0, int r = n, int h = 0) {
  if (r - l == 1) {
    seg[h][l] = baz[l].second;
    return;
  }
  int m = l + r >> 1;
  bld(l, m, h + 1), bld(m, r, h + 1);
  merge(seg[h + 1] + l, seg[h + 1] + m, seg[h + 1] + m, seg[h + 1] + r,
        seg[h] + l);
}
int get(int s, int e, int k, int l = 0, int r = n, int h = 0) {
  if (l >= e || r <= s) return 0;
  if (l >= s && r <= e)
    return upper_bound(seg[h] + l, seg[h] + r, k) - (seg[h] + l);
  int m = l + r >> 1;
  return get(s, e, k, l, m, h + 1) + get(s, e, k, m, r, h + 1);
}
int LB(int x) {
  pair<int, int> a = {x, -1};
  return lower_bound(baz, baz + n, a) - baz;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> m;
  for (int i = 0; i < n; i++)
    cin >> baz[i].first >> baz[i].second, baz[i].second++;
  sort(baz, baz + n);
  bld();
  for (int i = 0; i < m; i++) {
    int ans = n, tq;
    cin >> tq;
    k[0] = -1, k[tq + 1] = 1e6 + 1;
    for (int j = 1; j <= tq + 1; j++) {
      if (j <= tq) cin >> k[j];
      int l = LB(k[j - 1] + 1), r = LB(k[j]);
      ans -= get(l, r, k[j]);
    }
    cout << ans << '\n';
  }
}
