#include <bits/stdc++.h>
using namespace std;
const int M = 100000 + 10;
struct point {
  double x, y;
};
class PinConvexHull {
  double mult(point sp, point ep, point op) {
    return (sp.x - op.x) * (ep.y - op.y) - (ep.x - op.x) * (sp.y - op.y);
  }

 public:
  bool solve(point p, point a[], int n) {
    int L = 1, R = n - 1;
    while (L <= R) {
      int mid = (L + R) >> 1;
      if (mult(a[mid], p, a[0]) >= 0) {
        R = mid - 1;
      } else {
        L = mid + 1;
      }
    }
    if (L < 2 || mult(a[n - 1], p, a[0]) <= 0 || mult(a[L - 1], p, a[L]) <= 0) {
      return false;
    }
    return true;
  }
} yinzm;
point a[M], b[M];
int n, m;
int main() {
  while (~scanf("%d", &n)) {
    for (int i = 0; i < n; i++) {
      scanf("%lf%lf", &a[i].x, &a[i].y);
    }
    scanf("%d", &m);
    for (int i = 0; i < m; i++) {
      scanf("%lf%lf", &b[i].x, &b[i].y);
    }
    bool flag = false;
    for (int i = 0; i < m; i++) {
      if (!yinzm.solve(b[i], a, n)) {
        flag = true;
        break;
      }
    }
    if (flag)
      puts("NO");
    else
      puts("YES");
  }
  return 0;
}
