#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:536870912")
#pragma warning(disable : 4996)
using namespace std;
const long long int INF = 4e18 + 100;
const int N = 2e5 + 100, D = 3;
long long int c[D], x[D][N], y[D][N], rx[N], ry[N];
vector<pair<long long int, long long int>> v;
bool cmp(pair<long long int, long long int> &a,
         pair<long long int, long long int> &b) {
  int pa = a.second > 0 || a.second == 0 && a.first > 0,
      pb = b.second > 0 || b.second == 0 && b.first > 0;
  if (pa == pb) return a.first * b.second - a.second * b.first > 0;
  return pa;
}
int main() {
  for (int i = 0; i < D; i++) {
    scanf("%lld", &c[i]);
    for (int j = 0; j < c[i]; j++) scanf("%lld%lld", &x[i][j], &y[i][j]);
  }
  for (int i = 0; i < D; i++) {
    long long int a = INF, b = INF;
    x[i][c[i]] = x[i][0];
    y[i][c[i]] = y[i][0];
    for (int j = 0; j < c[i]; j++) {
      if (b > y[i][j] || b == y[i][j] && a > x[i][j]) {
        a = x[i][j];
        b = y[i][j];
      }
      v.push_back({x[i][j + 1] - x[i][j], y[i][j + 1] - y[i][j]});
    }
    rx[0] += a;
    ry[0] += b;
  }
  sort(v.begin(), v.end(), cmp);
  int t = 0, q = 0;
  while (q < v.size()) {
    rx[t + 1] = rx[t];
    ry[t + 1] = ry[t];
    do {
      rx[t + 1] += v[q].first;
      ry[t + 1] += v[q].second;
      q++;
    } while (q < v.size() && (!q || v[q - 1].first * v[q].second -
                                            v[q].first * v[q - 1].second ==
                                        0));
    t++;
  }
  for (int i = 1; i < v.size() + 1; i++) {
    rx[i] -= rx[0];
    ry[i] -= ry[0];
  }
  int m;
  scanf("%d", &m);
  while (m--) {
    long long int x, y;
    scanf("%lld%lld", &x, &y);
    x *= 3;
    y *= 3;
    x -= rx[0];
    y -= ry[0];
    if (y < 0 || y == 0 && x < 0) {
      printf("NO\n");
      continue;
    }
    int l = 1, r = t;
    while (r - l > 1) {
      int p = (r + l) >> 1;
      if (x * ry[p] - y * rx[p] <= 0)
        l = p;
      else
        r = p;
    }
    long long int cp = x * ry[l] - y * rx[l];
    if (cp == 0) {
      if (x * x + y * y <= rx[l] * rx[l] + ry[l] * ry[l])
        printf("YES\n");
      else
        printf("NO\n");
      continue;
    }
    if (cp > 0 || l == v.size() - 1) {
      printf("NO\n");
    } else {
      long long int cx[4] = {-x, rx[l] - x, rx[l + 1] - x, -x},
                    cy[4] = {-y, ry[l] - y, ry[l + 1] - y, -y};
      long long int t = 0, q = 0;
      for (int i = 0; i < 3; i++) {
        long long int g = cx[i] * cy[i + 1] - cx[i + 1] * cy[i];
        t += abs(g);
        q += g;
      }
      if (abs(q) == t)
        printf("YES\n");
      else
        printf("NO\n");
    }
  }
  return 0;
}
