#include <bits/stdc++.h>
using namespace std;
const long long N = 5e5 + 7, INF = 1e18 + 7;
struct Vector {
  long long x, y;
  Vector() {}
  Vector(long long x, long long y) : x(x), y(y) {}
  Vector operator+(Vector u) { return Vector(x + u.x, y + u.y); }
  Vector operator-(Vector u) { return Vector(x - u.x, y - u.y); }
  bool operator==(Vector u) { return x == u.x && y == u.y; }
  long long operator^(Vector u) { return x * u.y - y * u.x; }
  long long sqrLen() { return x * x + y * y; };
} a[N], b[N], st[N], root;
long long ccw(Vector A, Vector B, Vector C) { return (B - A) ^ (C - A); }
bool Inside(Vector M, Vector A, Vector B, Vector C) {
  return abs(ccw(A, B, C)) ==
         abs(ccw(M, A, B)) + abs(ccw(M, A, C)) + abs(ccw(M, B, C));
}
long long n, m, top;
void enter() {
  cin >> n;
  for (long long i = (1), _b = (n); i <= _b; ++i) cin >> a[i].x >> a[i].y;
  cin >> m;
  for (long long i = (1), _b = (n); i <= _b; ++i) cin >> b[i].x >> b[i].y;
}
void Convexhull() {
  root = {INF, INF};
  for (long long i = (1), _b = (n); i <= _b; ++i)
    if (root.y > a[i].y || (a[i].y == root.y && a[i].x < root.x)) root = a[i];
  sort(a + 1, a + 1 + n, [](Vector u, Vector v) {
    u = u - root;
    v = v - root;
    return (u ^ v) > 0 || ((u ^ v) == 0 && u.sqrLen() < v.sqrLen());
  });
  for (long long i = (1), _b = (n); i <= _b; ++i) {
    while (top >= 2 && ccw(st[top - 1], st[top], a[i]) <= 0) top--;
    if (top > 0 && a[i] == st[top]) continue;
    st[++top] = a[i];
  }
}
void Counting() {
  long long res = 0;
  for (long long i = (1), _b = (m); i <= _b; ++i) {
    if (ccw(st[1], st[top], b[i]) >= 0) continue;
    if (ccw(st[1], st[2], b[i]) <= 0) continue;
    long long l = 2, h = top + 1;
    while (l + 1 < h) {
      long long mid = (l + h) / 2;
      if (ccw(st[1], st[mid], b[i]) >= 0)
        l = mid;
      else
        h = mid;
    }
    if (l == top) --l;
    long long area = ccw(st[1], st[l], b[i]), s1 = ccw(b[i], st[1], st[l]),
              s2 = ccw(b[i], st[1], st[l + 1]),
              s3 = ccw(b[i], st[l], st[l + 1]);
    if (s3) res += Inside(b[i], st[1], st[l], st[l + 1]);
  }
  cout << (res == m ? "YES" : "NO") << '\n';
}
void process() {
  Convexhull();
  Counting();
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int test = 1;
  while (test--) {
    enter();
    process();
  }
  return 0;
}
