#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
  point() {}
  point(int xx, int yy) { x = xx, y = yy; }
};
point a[3][100000], b[500000];
int an[3], bn, start[3], pos[3];
long long area(point a, point b, point c) {
  return 1LL * (b.x - a.x) * (c.y - a.y) - 1LL * (b.y - a.y) * (c.x - a.x);
}
void add(point p) {
  if (bn > 1 && area(b[bn - 2], b[bn - 1], p) == 0) --bn;
  b[bn++] = p;
}
bool Less(int dx, int dy, int dx2, int dy2) {
  if (dy >= 0 && dy2 < 0) return true;
  if (dy < 0 && dy2 >= 0) return false;
  if (dy == 0 && dy2 == 0) return dx > dx2;
  long long v = 1LL * dx * dy2 - 1LL * dy * dx2;
  return (v > 0);
}
void Minkowski_sum() {
  for (int i = 0; i < 3; ++i) {
    int &second = start[i];
    for (int j = 1; j < an[i]; ++j) {
      if (make_pair(a[i][j].y, a[i][j].x) <
          make_pair(a[i][second].y, a[i][second].x))
        second = j;
    }
  }
  while (pos[0] < an[0] || pos[1] < an[1] || pos[2] < an[2]) {
    int x = 0, y = 0;
    for (int i = 0; i < 3; ++i) {
      int p = (start[i] + pos[i]) % an[i];
      x += a[i][p].x;
      y += a[i][p].y;
    }
    add(point(x, y));
    int second = 0;
    while (pos[second] == an[second]) ++second;
    for (int i = second + 1; i < 3; ++i)
      if (pos[i] < an[i]) {
        int ps = (start[second] + pos[second]) % an[second];
        int ps2 = (ps + 1) % an[second];
        int pi = (start[i] + pos[i]) % an[i];
        int pi2 = (pi + 1) % an[i];
        int xs = a[second][ps2].x - a[second][ps].x;
        int ys = a[second][ps2].y - a[second][ps].y;
        int xi = a[i][pi2].x - a[i][pi].x;
        int yi = a[i][pi2].y - a[i][pi].y;
        if (Less(xi, yi, xs, ys)) second = i;
      }
    ++pos[second];
  }
}
bool insideTriangle(point a, point b, point c, point p) {
  long long second = abs(area(a, b, c));
  long long sa = abs(area(a, b, p));
  long long sb = abs(area(a, c, p));
  long long sc = abs(area(b, c, p));
  return (second == sa + sb + sc);
}
bool insidePolygon(point p) {
  if (area(b[0], b[1], p) < 0 || area(b[0], b[bn - 1], p) > 0) return 0;
  int r = bn - 1, l = 1;
  while (r - l > 1) {
    int mid = (l + r) / 2;
    if (area(b[0], b[mid], p) >= 0)
      l = mid;
    else
      r = mid;
  }
  return insideTriangle(b[0], b[l], b[r], p);
}
int main() {
  for (int i = 0; i < 3; ++i) {
    scanf("%d", &an[i]);
    for (int j = 0; j < an[i]; ++j) scanf("%d%d", &a[i][j].x, &a[i][j].y);
  }
  Minkowski_sum();
  if (bn > 2 && area(b[bn - 2], b[bn - 1], b[0]) == 0) --bn;
  int m;
  scanf("%d", &m);
  for (int i = 0; i < m; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    if (insidePolygon(point(3 * x, 3 * y)))
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
