#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long x, y;
  Point(long long a = 0, long long b = 0) : x(a), y(b) {}
};
bool operator<(const Point& a, const Point& b) {
  return a.x < b.x || (a.x == b.x && a.y < b.y);
}
bool operator==(const Point& a, const Point& b) {
  return a.x == b.x && a.y == b.y;
}
Point operator-(const Point& a, const Point& b) {
  return Point(a.x - b.x, a.y - b.y);
}
long long Cross(Point a, Point b) { return a.x * b.y - b.x * a.y; }
set<Point> bst[2];
set<Point>::iterator l, r, t;
Point x;
long long ans;
Point o(0, 0);
void erase_l(int i) {
  while (l != bst[i].begin() && Cross(*--(t = l) - *l, x - *l) >= 0)
    ans -= Cross(*t, *l), bst[i].erase(l), l = t;
}
void erase_r(int i) {
  while (++(t = r) != bst[i].end() && Cross(x - *r, *t - *r) >= 0)
    ans -= Cross(*r, *t), bst[i].erase(r), r = t;
}
void insert() {
  for (int i = 0; i < 2; i++) {
    if (i) x = o - x;
    if ((r = bst[i].lower_bound(x)) == bst[i].end()) {
      --(l = r), erase_l(i), bst[i].insert(x), ans += Cross(*l, x);
      continue;
    }
    if (x == *r) return;
    if (r != bst[i].begin()) {
      if (Cross(*--(l = r) - x, *r - x) >= 0) continue;
      ans -= Cross(*l, *r), erase_l(i), ans += Cross(*l, x);
    }
    erase_r(i), ans += Cross(x, *r), bst[i].insert(x);
  }
}
bool check(Point p) {
  bool flag = true;
  for (int i = 0; i < 2; i++) {
    if (i == 1) p = o - p;
    set<Point>::iterator r = bst[i].lower_bound(p);
    if (r == bst[i].end())
      flag = false;
    else if (r == bst[i].begin()) {
      if (!(*r == p)) flag = false;
    } else {
      set<Point>::iterator nxt = (--r);
      r++;
      if (Cross((*r - *nxt), (p - *nxt)) < 0) flag = false;
    }
  }
  return flag;
}
int q, d;
int main() {
  ios::sync_with_stdio(false);
  cin >> q;
  q -= 3;
  Point p;
  cin >> d >> p.x >> p.y;
  bst[0].insert(p);
  bst[1].insert(o - p);
  cin >> d >> p.x >> p.y;
  bst[0].insert(p);
  bst[1].insert(o - p);
  cin >> d >> p.x >> p.y;
  x = p;
  insert();
  while (q--) {
    cin >> d >> p.x >> p.y;
    if (d == 1) {
      x = p;
      insert();
    } else {
      if (check(p))
        printf("YES\n");
      else
        printf("NO\n");
    }
  }
  return 0;
}
