#include <bits/stdc++.h>
using namespace std;
int n, m;
struct data {
  int l, r, id;
} s1[300300], seg[1000100];
int tot;
bool cmp(data a, data b) { return a.l < b.l || a.l == b.l && a.r < b.r; }
int ans[300300];
int xx, ww;
int ma = 1e6;
int C[2000200];
int lb(int x) { return x & (-x); }
void add(int x) {
  while (x <= ma) {
    C[x]++;
    x += lb(x);
  }
}
int ask(int x) {
  int r = 0;
  while (x) r += C[x], x -= lb(x);
  return r;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; ++i) scanf("%d%d", &s1[i].l, &s1[i].r);
  int la;
  for (int i = 1; i <= m; ++i) {
    scanf("%d", &xx);
    la = 1;
    for (int j = 1; j <= xx; ++j) {
      scanf("%d", &ww);
      if (ww > la) seg[++tot].l = la, seg[tot].r = ww - 1, seg[tot].id = i;
      la = ww + 1;
    }
    if (la <= ma) seg[++tot].l = la, seg[tot].r = ma, seg[tot].id = i;
  }
  sort(s1 + 1, s1 + n + 1, cmp);
  sort(seg + 1, seg + tot + 1, cmp);
  int p = n;
  for (int i = tot; i; --i) {
    while (s1[p].l >= seg[i].l && p) add(s1[p].r), p--;
    ans[seg[i].id] += ask(seg[i].r);
  }
  for (int i = 1; i <= m; ++i) printf("%d\n", n - ans[i]);
  return 0;
}
