#include <bits/stdc++.h>
using namespace std;
struct point {
  long long x, y, id;
} p[200005];
vector<int> pol;
int n, m;
bool cmp(point a, point b) {
  if (a.x < b.x || (a.x == b.x && a.y < b.y)) return true;
  return false;
}
long long cross(point a, point b, point c) {
  return (b.x - a.x) * (c.y - b.y) - (b.y - a.y) * (c.x - b.x);
}
void hull() {
  sort(p, p + n + m, cmp);
  int sz = 0;
  for (int i = 0; i < n + m; i++) {
    while (sz > 1 && cross(p[pol[sz - 2]], p[pol[sz - 1]], p[i]) > 0) {
      pol.pop_back();
      sz--;
    }
    sz++;
    pol.push_back(i);
  }
  int sz2 = sz;
  for (int i = n + m - 2; i >= 0; i--) {
    while (sz > sz2 && cross(p[pol[sz - 2]], p[pol[sz - 1]], p[i]) > 0) {
      pol.pop_back();
      sz--;
    }
    sz++;
    pol.push_back(i);
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> p[i].x >> p[i].y;
    p[i].id = 1;
  }
  cin >> m;
  for (int i = 0; i < m; i++) {
    cin >> p[i + n].x >> p[i + n].y;
    p[i + n].id = 2;
  }
  hull();
  bool flag = true;
  for (int i = 0; i < pol.size(); i++) {
    if (p[pol[i]].id == 2) {
      flag = false;
      break;
    }
  }
  if (flag)
    cout << "YES";
  else
    cout << "NO";
  cout << endl;
  return 0;
}
