#include <bits/stdc++.h>
using namespace std;
const double INF = 1e10;
const double eps = 1e-9;
struct point {
  long long x, y;
  double key;
  point(long long _x, long long _y, double _key) : x(_x), y(_y), key(_key) {}
  point() {}
  bool operator<(const point &a) const { return key > a.key; }
};
long long mul(const point &a, const point &b, const point &c) {
  return (a.x - c.x) * (b.y - c.y) - (a.y - c.y) * (b.x - c.x);
}
set<point>::iterator pre(set<point> &a, set<point>::iterator p) {
  if (p == a.begin()) p = a.end();
  p--;
  return p;
}
set<point>::iterator next(set<point> &a, set<point>::iterator p) {
  if (p == a.end()) p = a.begin();
  p++;
  if (p == a.end()) p = a.begin();
  return p;
}
int main() {
  int n;
  while (scanf("%d", &n) != EOF) {
    set<point> a;
    point p[3];
    double dot_x = 0, dot_y = 0;
    int t;
    for (int i = 0; i < 3; i++) {
      scanf("%d%I64d%I64d", &t, &p[i].x, &p[i].y);
      dot_x += p[i].x / 3.0;
      dot_y += p[i].y / 3.0;
    }
    for (int i = 0; i < 3; i++)
      a.insert(point(p[i].x, p[i].y, atan2(p[i].y - dot_y, p[i].x - dot_x)));
    for (int i = 3; i < n; i++) {
      int t, x, y;
      scanf("%d%d%d", &t, &x, &y);
      point lin(x, y, atan2(y - dot_y, x - dot_x));
      bool flag = true;
      while (1) {
        set<point>::iterator p = a.lower_bound(lin), q;
        q = pre(a, p);
        p = next(a, q);
        if (mul(lin, *q, *p) < eps) {
          flag = false;
        }
        if ((dot_x - x) * (dot_x - x) + (dot_y - y) * (dot_y - y) < eps)
          flag = false;
        break;
      }
      if (flag && t == 1) {
        while (1) {
          set<point>::iterator p = a.lower_bound(lin), q;
          if (p == a.end()) p = a.begin();
          q = next(a, p);
          if (mul(lin, *p, *q) > -eps)
            a.erase(p);
          else
            break;
        }
        while (1) {
          set<point>::iterator p = a.lower_bound(lin), q;
          p = pre(a, p);
          q = pre(a, p);
          if (mul(lin, *p, *q) < eps)
            a.erase(p);
          else
            break;
        }
        a.insert(lin);
      }
      if (t == 2) {
        if (flag)
          printf("NO\n");
        else
          printf("YES\n");
      } else {
      }
    }
  }
}
