#include <bits/stdc++.h>
using namespace std;
const int N = 300000 + 10;
const int MOD = 1e9 + 7;
const int INF = 1000000 + 10;
struct Point {
  int x, y;
  Point() {}
  Point(int x, int y) : x(x), y(y) {}
  void read() { scanf("%d%d", &x, &y); }
  Point operator-(const Point &that) const {
    return Point(x - that.x, y - that.y);
  }
  int operator<(const Point &that) const { return x < that.x; }
  long long det(const Point &that) const {
    return (long long)x * that.y - (long long)y * that.x;
  }
};
struct ConvexHull {
  set<Point> a;
  int opt;
  int xl, xr;
  ConvexHull() {}
  void clear() {
    a.clear();
    xl = INF;
    xr = -INF;
  }
  int ok(Point u) {
    if (a.empty()) return false;
    if (u.x < xl) return false;
    if (u.x > xr) return false;
    set<Point>::iterator it = a.lower_bound(u);
    if (it->x == u.x) {
      return (it->y - u.y) * opt >= 0;
    } else {
      set<Point>::iterator l = it, r = it;
      --l;
      return ((*r) - (*l)).det(u - (*l)) * opt <= 0;
    }
  }
  void insert(Point u) {
    if (ok(u)) return;
    set<Point>::iterator l, r;
    r = a.lower_bound(u);
    for (;;) {
      l = r;
      if (l == a.end()) break;
      ++r;
      if (r == a.end()) break;
      if ((*l - u).det(*r - u) * opt >= 0) {
        a.erase(l);
      } else
        break;
    }
    l = a.lower_bound(u);
    if (l != a.end() && l->x == u.x) a.erase(l);
    r = a.lower_bound(u);
    if (r != a.begin()) {
      --r;
      for (;;) {
        l = r;
        if (l == a.begin()) break;
        --r;
        if ((*l - u).det(*r - u) * opt <= 0) {
          a.erase(l);
        } else
          break;
      }
    }
    a.insert(u);
    xl = min(xl, u.x);
    xr = max(xr, u.x);
  }
} up, down;
int q;
void solve() {
  int t;
  up.clear();
  down.clear();
  up.opt = 1;
  down.opt = -1;
  Point u;
  for (; q--;) {
    scanf("%d", &t);
    u.read();
    if (t == 1) {
      up.insert(u);
      down.insert(u);
    } else {
      if (up.ok(u) && down.ok(u)) {
        puts("YES");
      } else {
        puts("NO");
      }
    }
  }
}
int main() {
  for (; cin >> q;) {
    solve();
  }
  return 0;
}
