#include <bits/stdc++.h>
using namespace std;
using T = long long;
using pt = pair<T, T>;
pt operator-(pt a) { return {-a.first, -a.second}; }
pt operator+(pt a, pt b) { return {a.first + b.first, a.second + b.second}; }
pt operator-(pt a, pt b) { return {a.first - b.first, a.second - b.second}; }
pt operator*(pt a, T t) { return {a.first * t, a.second * t}; }
T abs2(pt a) { return a.first * a.first + a.second * a.second; }
T dot(pt a, pt b) { return a.first * b.first + a.second * b.second; }
T cross(pt a, pt b) { return a.first * b.second - b.first * a.second; }
T cross(pt a, pt b, pt o) { return cross(a - o, b - o); }
auto angle_cmp = [](const pt& a, const pt& b) {
  auto btm = [](const pt& a) {
    return a.second < 0 || (a.second == 0 && a.first < 0);
  };
  return make_tuple(btm(a), a.second * b.first, abs2(a)) <
         make_tuple(btm(b), a.first * b.second, abs2(b));
};
vector<pt> convex_hull(vector<pt> p) {
  sort(p.begin(), p.end());
  if (p[0] == p.back()) return {p[0]};
  int n = p.size(), m = 0;
  vector<pt> h;
  auto cc = [](pt a, pt b, pt c) {
    return (a.first - c.first) * (b.second - c.second) >=
           (a.second - c.second) * (b.first - c.first);
  };
  for (int i = 0; i < n; i++) {
    while (m > 1 && cc(p[i], h[m - 1], h[m - 2])) h.pop_back(), m--;
    h.push_back(p[i]), m++;
  }
  for (int i = n - 2, t = m; i >= 0; i--) {
    while (m > t && cc(p[i], h[m - 1], h[m - 2])) h.pop_back(), m--;
    h.push_back(p[i]), m++;
  }
  return h.pop_back(), h;
}
vector<pt> minkowski_sum(vector<pt> p, vector<pt> q) {
  auto diff = [](vector<pt>& c) {
    auto rcmp = [](pt a, pt b) {
      return pt{a.second, a.first} < pt{b.second, b.first};
    };
    rotate(c.begin(), min_element((c).begin(), (c).end(), rcmp), c.end());
    c.push_back(c[0]);
    vector<pt> ret;
    for (int i = 1; i < c.size(); i++) ret.push_back(c[i] - c[i - 1]);
    return ret;
  };
  auto dp = diff(p), dq = diff(q);
  pt cur = p[0] + q[0];
  vector<pt> d(dp.size() + dq.size()), ret = {cur};
  merge((dp).begin(), (dp).end(), (dq).begin(), (dq).end(), d.begin(),
        angle_cmp);
  for (pt v : d) ret.push_back(cur = cur + v);
  return ret.pop_back(), ret;
}
bool inside(const vector<pt>& c, pt p) {
  int n = c.size(), l = 1, r = n - 1;
  if (cross(c[0], c[1], p) < 0) return false;
  if (cross(c[n - 1], c[0], p) < 0) return false;
  while (l < r - 1) {
    int m = (l + r) / 2;
    T a = cross(c[0], c[m], p);
    if (a > 0)
      l = m;
    else if (a < 0)
      r = m;
    else
      return dot(c[0] - p, c[m] - p) <= 0;
  }
  if (l == r)
    return dot(c[0] - p, c[l] - p) <= 0;
  else
    return cross(c[l], c[r], p) >= 0;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  int n;
  vector<pt> a, b, c;
  cin >> n;
  a.resize(n);
  for (auto& [first, second] : a) cin >> first >> second;
  cin >> n;
  b.resize(n);
  for (auto& [first, second] : b) cin >> first >> second;
  cin >> n;
  c.resize(n);
  for (auto& [first, second] : c) cin >> first >> second;
  auto sum = convex_hull(minkowski_sum(minkowski_sum(a, b), c));
  cin >> n;
  while (n--) {
    pt p;
    cin >> p.first >> p.second;
    cout << (inside(sum, p * 3) ? "YES\n" : "NO\n");
  }
}
