#include <bits/stdc++.h>
using namespace std;
vector<pair<long long, long long> > p[4];
int st[4], mid_pos[4], pos[4];
pair<long long, long long> operator+(const pair<long long, long long> &a,
                                     const pair<long long, long long> &b) {
  return make_pair(a.first + b.first, a.second + b.second);
}
pair<long long, long long> operator-(const pair<long long, long long> &a,
                                     const pair<long long, long long> &b) {
  return make_pair(a.first - b.first, a.second - b.second);
}
void out(pair<long long, long long> a) {
  cout << a.first << '\t' << a.second << endl;
}
bool cmp(pair<long long, long long> a, pair<long long, long long> b) {
  return a.first * b.second - a.second * b.first > 0;
}
void cal_st(int idx) {
  st[idx] = 0;
  for (int i = 1; i < p[idx].size(); i++)
    if (p[idx][i] < p[idx][st[idx]]) st[idx] = i;
}
void cal_mid_pos(int idx) {
  mid_pos[idx] = 0;
  for (int i = 1; i < p[idx].size(); i++)
    if (p[idx][i] > p[idx][mid_pos[idx]]) mid_pos[idx] = i;
}
int cal_next(int idx) {
  int ans = pos[idx] + 1;
  if (ans == p[idx].size()) ans = 0;
  return ans;
}
int bs1(int start, int num, pair<long long, long long> a) {
  int l = 0, r = num - 1, mid;
  while (l < r) {
    mid = (l + r) / 2;
    if (p[3][(start + mid + 1) % p[3].size()] <= a)
      l = mid + 1;
    else
      r = mid;
  }
  return (l + start) % p[3].size();
}
int bs2(int start, int num, pair<long long, long long> a) {
  int l = 0, r = num - 1, mid;
  while (l < r) {
    mid = (l + r) / 2;
    if (p[3][(start + mid + 1) % p[3].size()] >= a)
      l = mid + 1;
    else
      r = mid;
  }
  return (l + start) % p[3].size();
}
bool judge(pair<long long, long long> a) {
  int idx;
  if (a == p[3][st[3]] || a == p[3][mid_pos[3]]) return true;
  if (a < p[3][st[3]] || a > p[3][mid_pos[3]]) return false;
  if (st[3] < mid_pos[3])
    idx = bs1(st[3], mid_pos[3] - st[3], a);
  else
    idx = bs1(st[3], mid_pos[3] + p[3].size() - st[3], a);
  pos[3] = idx;
  if (cmp(a - p[3][idx], p[3][cal_next(3)] - p[3][idx])) return false;
  if (mid_pos[3] < st[3])
    idx = bs2(mid_pos[3], st[3] - mid_pos[3], a);
  else
    idx = bs2(mid_pos[3], st[3] + p[3].size() - mid_pos[3], a);
  pos[3] = idx;
  if (cmp(a - p[3][idx], p[3][cal_next(3)] - p[3][idx])) return false;
  return true;
}
int main() {
  int num, x, y, next, idx;
  pair<long long, long long> tmp;
  for (int i = 0; i < 3; i++) {
    scanf("%d", &num);
    p[i].clear();
    for (int j = 0; j < num; j++) {
      scanf("%d%d", &x, &y);
      p[i].push_back(make_pair(x, y));
    }
    cal_st(i);
    cal_mid_pos(i);
  }
  p[3].clear();
  p[3].push_back(make_pair(0, 0));
  for (int i = 0; i < 3; i++) {
    pos[i] = st[i];
    p[3][0] = p[3][0] + p[i][st[i]];
  }
  while (1) {
    idx = 0;
    for (int i = 1; i < 3; i++)
      if (cmp(p[i][cal_next(i)] - p[i][pos[i]],
              p[idx][cal_next(idx)] - p[idx][pos[idx]]))
        idx = i;
    pos[idx] = cal_next(idx);
    tmp = make_pair(0, 0);
    for (int i = 0; i < 3; i++) tmp = tmp + p[i][pos[i]];
    if (tmp == p[3][0]) break;
    p[3].push_back(tmp);
  }
  cal_st(3);
  cal_mid_pos(3);
  scanf("%d", &num);
  while (num--) {
    scanf("%d%d", &x, &y);
    tmp = make_pair(x * 3, y * 3);
    if (judge(tmp))
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
