#include <bits/stdc++.h>
using namespace std;
struct point {
  long long x, y;
};
int n;
vector<point> A;
long long ccw(point a, point b, point c) {
  return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
}
int inTri(point a, point b, point c, point p) {
  if (p.x == a.x && p.y == a.y) return 0;
  if (ccw(b, c, p) == 0) return 0;
  if (ccw(a, c, p) >= 0 && ccw(c, b, p) >= 0 && ccw(b, a, p) >= 0) return 1;
  return 0;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    point t;
    scanf("%lld %lld", &t.x, &t.y);
    A.push_back(t);
  }
  int m, sts = 1;
  scanf("%d", &m);
  while (m--) {
    point pp;
    scanf("%lld %lld", &pp.x, &pp.y);
    int lo = 1, hi = n - 1, mid;
    while (hi - lo > 1) {
      mid = (hi + lo) / 2;
      if (ccw(A[0], A[mid], pp) >= 0)
        hi = mid;
      else
        lo = mid;
    }
    if (lo == 1 && ccw(A[0], A[lo], pp) == 0) sts = 0;
    if (hi == n - 1 && ccw(A[0], A[hi], pp) == 0) sts = 0;
    sts *= inTri(A[0], A[lo], A[hi], pp);
  }
  if (sts)
    printf("YES\n");
  else
    printf("NO\n");
}
