#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e12;
const int MAXN = 1e6 + 1, MODM = 1e9 + 7, P = 1e6 + 3, MULT1 = 30, MULT2 = 239,
          LUCKY = 13, ELEVEN = 11, MAXM = 101;
vector<int> g[MAXN];
vector<pair<int, int> > t[MAXN];
int f[MAXN << 2];
int n, m;
void update(int v, int tl, int tr, int ind) {
  if (tl == tr)
    f[v]++;
  else {
    int tm = (tl + tr) / 2;
    if (ind <= tm)
      update(v * 2, tl, tm, ind);
    else
      update(v * 2 + 1, tm + 1, tr, ind);
    f[v] = f[v * 2] + f[v * 2 + 1];
  }
}
int sum(int v, int tl, int tr, int l, int r) {
  if (l > r) return 0;
  if (tl == l && tr == r) return f[v];
  int tm = (tl + tr) / 2;
  return sum(v * 2, tl, tm, l, min(r, tm)) +
         sum(v * 2 + 1, tm + 1, tr, max(tm + 1, l), r);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    g[y].push_back(x);
  }
  for (int i = 0; i < m; i++) {
    int k;
    cin >> k;
    int x = -1;
    for (int o = 0; o < k; o++) {
      int y = x + 1;
      cin >> x;
      t[x - 1].push_back(make_pair(y, i));
    }
    t[MAXN - 1].push_back(make_pair(x + 1, i));
  }
  vector<int> ans(m, 0);
  for (int i = 1; i < MAXN; i++) {
    for (int j = 0; j < g[i].size(); j++) update(1, 0, MAXN, g[i][j]);
    for (int j = 0; j < t[i].size(); j++)
      ans[t[i][j].second] += sum(1, 0, MAXN, t[i][j].first, i);
  }
  for (int i = 0; i < m; i++) cout << n - ans[i] << " ";
  return 0;
}
