#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector")
using namespace std;
using lli = long long;
using ld = long double;
using ii = pair<int, int>;
using vi = vector<int>;
const ld eps = 1e-9;
int sgn(ld a) { return (a > eps) - (a < -eps); }
struct Pt {
  ld x, y;
  explicit Pt(ld x = 0, ld y = 0) : x(x), y(y) {}
  Pt operator+(Pt p) const { return Pt(x + p.x, y + p.y); }
  Pt operator-(Pt p) const { return Pt(x - p.x, y - p.y); }
  Pt operator*(ld k) const { return Pt(x * k, y * k); }
  Pt operator/(ld k) const { return Pt(x / k, y / k); }
  ld dot(Pt p) const { return x * p.x + y * p.y; }
  ld cross(Pt p) const { return x * p.y - y * p.x; }
  ld norm() const { return x * x + y * y; }
  ld length() const { return sqrtl(norm()); }
  ld angle() const {
    ld ang = atan2(y, x);
    return ang + (ang < 0 ? 2 * acos(-1) : 0);
  }
  Pt perp() const { return Pt(-y, x); }
  Pt unit() const { return (*this) / length(); }
  Pt rotate(ld angle) const {
    return Pt(x * cos(angle) - y * sin(angle), x * sin(angle) + y * cos(angle));
  }
  int dir(Pt a, Pt b) const { return sgn((a - *this).cross(b - *this)); }
  int cuad() const {
    if (x > 0 && y >= 0) return 0;
    if (x <= 0 && y > 0) return 1;
    if (x < 0 && y <= 0) return 2;
    if (x >= 0 && y < 0) return 3;
    return -1;
  }
  bool operator==(Pt p) const {
    return (abs((x) - (p.x)) <= +eps) && (abs((y) - (p.y)) <= +eps);
  }
  bool operator!=(Pt p) const {
    return (!(abs((x) - (p.x)) <= +eps)) || (!(abs((y) - (p.y)) <= +eps));
  }
};
using Poly = vector<Pt>;
Poly a;
int n, m;
bool contains(const Poly &a, Pt p) {
  int lo = 1, hi = int(a.size()) - 1;
  if (a[0].dir(a[lo], a[hi]) > 0) swap(lo, hi);
  if (a[0].dir(a[lo], p) >= 0 || a[0].dir(a[hi], p) <= 0) return false;
  while (abs(lo - hi) > 1) {
    int mid = (lo + hi) >> 1;
    (a[0].dir(a[mid], p) > 0 ? hi : lo) = mid;
  }
  return p.dir(a[lo], a[hi]) < 0;
}
int main() {
  cin.tie(0)->sync_with_stdio(0), cout.tie(0);
  while (cin >> n) {
    a = Poly(n);
    for (auto &p : a) cin >> p.x >> p.y;
    cin >> m;
    bool inside = true;
    while (m--) {
      Pt p;
      cin >> p.x >> p.y;
      if (!contains(a, p)) inside = false;
    }
    cout << (inside ? "YES" : "NO") << '\n';
  }
  return 0;
}
