#include <bits/stdc++.h>
using namespace std;
const int N = 100010, M = 100010;
int n, m, i, j, k, x, y, ed, g[N], v[M << 1], w[M << 1], nxt[M << 1],
    rk[M << 1], vis[N], s[N], q[N], ans;
double o[M << 1];
long long S;
map<pair<int, int>, int> T;
vector<int> f[N];
struct E {
  int x, y;
} a[N];
inline void read(int& a) {
  char c;
  bool f = 0;
  a = 0;
  while (!((((c = getchar()) >= '0') && (c <= '9')) || (c == '-')))
    ;
  if (c != '-')
    a = c - '0';
  else
    f = 1;
  while (((c = getchar()) >= '0') && (c <= '9')) (a *= 10) += c - '0';
  if (f) a = -a;
}
inline void add(int x, int y) {
  v[++ed] = y;
  nxt[ed] = g[x];
  g[x] = ed;
  T[pair<int, int>(x, y)] = ed;
}
inline bool cmp(int x, int y) {
  if (!x) return 1;
  if (!y) return 0;
  return o[x] < o[y];
}
int dfs(int x) {
  vis[x] = 1;
  int ret = 1;
  for (int i = g[x]; i; i = nxt[i])
    if (!vis[v[i]]) {
      int t = dfs(v[i]);
      w[i] += t, w[i ^ 1] -= t, ret += t;
    }
  return ret;
}
int main() {
  read(n), read(m);
  for (ed = i = 1; i <= m; i++) read(x), read(y), add(x, y), add(y, x);
  for (i = 1; i <= n; i++) read(a[i].x), read(a[i].y);
  for (i = x = 1; i <= n; i++)
    if (a[i].x < a[x].x) x = i;
  dfs(x);
  for (i = 1; i <= n; i++) {
    f[i].push_back(0);
    for (j = g[i]; j; j = nxt[j])
      f[i].push_back(j), s[i] += w[j],
          o[j] = atan2(a[v[j]].y - a[i].y, a[v[j]].x - a[i].x);
    sort(f[i].begin(), f[i].end(), cmp);
    for (j = 1; j < f[i].size(); j++) {
      rk[f[i][j]] = j;
      f[i][j] = f[i][j - 1] + w[f[i][j]];
    }
  }
  for (read(m); m--; printf("%d\n", ans)) {
    read(k);
    for (i = 1; i <= k; i++) read(q[i]);
    q[k + 1] = q[1];
    for (S = 0, i = 1; i <= k; i++)
      S += 1LL * a[q[i]].x * a[q[i + 1]].y - 1LL * a[q[i]].y * a[q[i + 1]].x;
    if (S < 0) reverse(q + 1, q + k + 1);
    q[0] = q[k], q[k + 1] = q[1];
    for (ans = k, i = 1; i <= k; i++) {
      x = rk[T[pair<int, int>(q[i], q[i - 1])]],
      y = rk[T[pair<int, int>(q[i], q[i + 1])]];
      ans += f[q[i]][x] - f[q[i]][y - 1];
      if (y > x) ans += s[q[i]];
    }
  }
}
