#include <bits/stdc++.h>
using namespace std;
class line;
class point {
 public:
  long long x, y;
  int mark;
  point() { x = y = 0; }
  point(int st, int nd) { x = st, y = nd; }
  point operator+(point a) {
    point ret(a.x + x, a.y + y);
    return ret;
  }
  point operator-(point a) {
    point ret(x - a.x, y - a.y);
    return ret;
  }
  point operator*(long long a) {
    point ret(x * a, y * a);
    return ret;
  }
  long long operator^(point a) { return x * a.y - a.x * y; }
  static long long crs_product(point a, point b) { return a ^ b; }
  long long operator*(point a) { return a.x * x + a.y * y; }
  static long long dot_product(point a, point b) { return a * b; }
  bool operator==(point a) { return a.x == x && a.y == y; }
  long long abs2() { return x * x + y * y; }
  static long long abs2(point a) { return a.abs2(); }
  long long abs() { return sqrt(x * x + y * y); }
  static long long abs(point a) { return a.abs(); }
  double angle() { return atan2(y, x); }
  static long long angle(point a) { return a.angle(); }
};
bool operator!=(point a, point b) { return (a.x != b.x) || (a.y != b.y); }
bool cmp_ch(const point &a, const point &b) {
  return (a.x < b.x) || (a.x == b.x && a.y < b.y);
}
vector<point> convex_hull(vector<point> p) {
  int n = p.size(), k = 0;
  vector<point> H(2 * n);
  sort(p.begin(), p.end(), cmp_ch);
  for (int i = 0; i < n; i++) {
    while (k >= 2 &&
           point::crs_product(H[k - 1] - H[k - 2], p[i] - H[k - 2]) < 0)
      k--;
    H[k++] = p[i];
  }
  for (int i = n - 2, t = k + 1; i >= 0; i--) {
    while (k >= t &&
           point::crs_product(H[k - 1] - H[k - 2], p[i] - H[k - 2]) < 0)
      k--;
    H[k++] = p[i];
  }
  H.resize(k);
  return H;
}
int main(int argc, char *argv[]) {
  vector<point> a, b, c, d;
  int na, nb;
  scanf("%d", &na);
  for (int i = 0; i < na; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    point tt(x, y);
    a.push_back(tt);
    b.push_back(tt);
  }
  scanf("%d", &nb);
  for (int i = 0; i < nb; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    point tt(x, y);
    b.push_back(tt);
  }
  c = convex_hull(a);
  d = convex_hull(b);
  int ff = 0;
  if (c.size() == d.size()) {
    ff = 1;
    sort(c.begin(), c.end(), cmp_ch);
    sort(d.begin(), d.end(), cmp_ch);
    for (int i = 0; i < c.size(); i++) {
      if (c[i] != d[i]) {
        ff = 0;
        break;
      }
    }
  }
  if (ff)
    printf("YES\n");
  else
    printf("NO\n");
  return EXIT_SUCCESS;
}
