#include <bits/stdc++.h>
using namespace std;
struct point {
  double x, y;
  point() {}
  point(double xx, double yy) {
    x = xx;
    y = yy;
  }
  point operator-(const point &b) const { return point(x - b.x, y - b.y); }
  double operator*(const point &b) const { return x * b.y - y * b.x; }
};
point a[100009], p;
int n, m;
int inside_convex() {
  if ((a[1] - a[0]) * (p - a[0]) >= 0) return 0;
  if ((a[n - 1] - a[0]) * (p - a[0]) <= 0) return 0;
  int l = 0, r = n - 1;
  while (l < r - 1) {
    int mid = (l + r) / 2;
    if ((p - a[0]) * (a[mid] - a[0]) >= 0)
      l = mid;
    else
      r = mid;
  }
  if ((p - a[l + 1]) * (a[l] - a[l + 1]) >= 0) return 0;
  return 1;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i].x >> a[i].y;
  cin >> m;
  bool flag = 0;
  for (int i = 0; i < m; i++) {
    cin >> p.x >> p.y;
    if (!flag) {
      if (inside_convex() == 0) flag = 1;
    }
  }
  if (flag)
    cout << "NO" << endl;
  else
    cout << "YES" << endl;
  return 0;
}
