#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 5;
int bit[MAXN];
int sum(int i) {
  int s = 0;
  while (i > 0) {
    s += bit[i];
    i -= i & -i;
  }
  return s;
}
void add(int i, int first) {
  while (i <= 1000002) {
    bit[i] += first;
    i += i & -i;
  }
}
struct sss {
  int l, r, id;
} a[MAXN];
bool comp(const sss &a, const sss &b) {
  if (a.l == b.l) return a.r < b.r;
  return a.l > b.l;
}
int ans[MAXN];
int tmp[MAXN];
int main() {
  int m, n, i, j, k;
  scanf("%d%d", &m, &n);
  for (i = 1; i <= m; i++)
    scanf("%d%d", &a[i].l, &a[i].r), a[i].id = 0, a[i].l++, a[i].r++;
  int tot = m;
  for (i = 1; i <= n; i++) {
    scanf("%d", &k);
    tmp[0] = 0;
    for (j = 1; j <= k; j++) {
      scanf("%d", &tmp[j]);
      tmp[j]++;
    }
    tmp[k + 1] = 1000003;
    for (j = 1; j <= k + 1; j++) {
      m++;
      a[m].id = i;
      a[m].l = tmp[j - 1] + 1;
      a[m].r = tmp[j] - 1;
    }
    ans[i] = tot;
  }
  sort(a + 1, a + 1 + m, comp);
  for (i = 1; i <= m; i++) {
    if (a[i].id == 0)
      add(a[i].r, 1);
    else
      ans[a[i].id] -= sum(a[i].r);
  }
  for (i = 1; i <= n; i++) printf("%d\n", ans[i]);
}
