#include <bits/stdc++.h>
using namespace std;
const int N = 50001 * 3;
complex<long long> a[N], b[N], O;
int _;
int A(const complex<long long>& a) {
  return (a.real() >= 0) ^ ((a.imag() < 0) + 1);
}
long long cross(const complex<long long>& a, const complex<long long>& b) {
  return (conj(a) * b).imag();
}
bool Cmp(const complex<long long>& a, const complex<long long>& b) {
  int x = A(a), y = A(b);
  if (x != y) return x < y;
  return cross(a, b) > 0;
}
map<long long, complex<long long> > h1, h2;
bool in(map<long long, complex<long long> >& h, long long x, long long y) {
  if (!(int)(h).size()) return false;
  if (x < h.begin()->second.real() || x > h.rbegin()->second.real())
    return false;
  auto l = h.lower_bound(x);
  if (x == l->second.real()) return y <= l->second.imag();
  auto r = l--;
  return cross(r->second - l->second, complex<long long>(x, y) - l->second) <=
         0;
}
void ins(map<long long, complex<long long> >& h, long long x, long long y) {
  if (in(h, x, y)) return;
  complex<long long> p(x, y);
  h[x] = p;
  auto LL = h.find(x), RR = LL, L = LL, R = L;
  if (LL != h.begin()) --LL;
  if (*RR != *h.rbegin()) ++RR;
  if (L != h.begin())
    while ((L = LL) != h.begin()) {
      --(LL = L);
      if (cross(p - LL->second, L->second - LL->second) <= 0)
        h.erase(L);
      else
        break;
    }
  if (*R != *h.rbegin())
    while (*(R = RR) != *h.rbegin()) {
      ++(RR = R);
      if (cross(p - RR->second, R->second - RR->second) >= 0)
        h.erase(R);
      else
        break;
    }
}
int main() {
  _ = 0;
  O = complex<long long>(0, 0);
  for (int re = 0; re < (3); ++re) {
    int n;
    scanf("%d", &n);
    int id = 0;
    for (int i = 0; i < (n); ++i) {
      int x, y;
      scanf("%d%d", &x, &y);
      a[i] = complex<long long>(x, y);
      if (a[i].imag() < a[id].imag() ||
          (a[i].imag() == a[id].imag() && a[i].real() < a[id].real()))
        id = i;
    }
    O += a[id];
    a[n] = a[0];
    int __ = _;
    for (int i = id; i < (n); ++i) b[__++] = a[i + 1] - a[i];
    for (int i = 0; i < (id); ++i) b[__++] = a[i + 1] - a[i];
    inplace_merge(b, b + _, b + __, Cmp);
    _ = __;
  }
  a[0] = O;
  for (int i = 0; i < (_); ++i) a[i + 1] = a[i] + b[i];
  for (int i = 0; i < (_); ++i)
    ins(h1, a[i].real(), a[i].imag()), ins(h2, a[i].real(), -a[i].imag());
  int m;
  scanf("%d", &m);
  for (int i = 0; i < (m); ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    x *= 3;
    y *= 3;
    puts(in(h1, x, y) && in(h2, x, -y) ? "YES" : "NO");
  }
  return 0;
}
