#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5, inf = 2e9;
int x, y, T, op;
inline void in(register int &x) {
  int f = 0;
  x = 0;
  char c = getchar();
  while (c < '0' || c > '9') f |= c == '-', c = getchar();
  while (c >= '0' && c <= '9')
    x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
  x = f ? -x : x;
}
struct Point {
  long long x, y;
  Point(long long X = 0, long long Y = 0) { x = X, y = Y; }
  inline void In() {
    register int X, Y;
    in(X), in(Y), x = X, y = Y;
  }
  inline bool operator<(const Point &O) const {
    return x != O.x ? x < O.x : y < O.y;
  }
};
inline long long Cro(Point a, Point b) { return a.x * b.y - a.y * b.x; }
inline Point operator-(Point a, Point b) { return Point(a.x - b.x, a.y - b.y); }
struct ConvexHull {
  int op;
  set<Point> s;
  inline int PIP(Point P) {
    set<Point>::iterator it = s.lower_bound(Point(P.x, -inf));
    if (it == s.end()) return 0;
    if (it->x == P.x) return (P.y - it->y) * op <= 0;
    if (it == s.begin()) return 0;
    set<Point>::iterator j = it--;
    return Cro(P - *it, *j - *it) * op >= 0;
  }
  inline int judge(set<Point>::iterator it) {
    set<Point>::iterator j = it, k = it;
    if (j == s.begin()) return 0;
    --j;
    if (++k == s.end()) return 0;
    return Cro(*it - *j, *k - *j) * op >= 0;
  }
  inline void insert(Point P) {
    if (PIP(P)) return;
    set<Point>::iterator tmp = s.lower_bound(Point(P.x, -inf));
    if (tmp != s.end() && tmp->x == P.x) s.erase(tmp);
    s.insert(P);
    set<Point>::iterator it = s.find(P), p = it;
    if (p != s.begin()) {
      --p;
      while (judge(p)) {
        set<Point>::iterator tmp = p--;
        s.erase(tmp);
      }
    }
    if ((p = ++it) != s.end())
      while (judge(p)) {
        set<Point>::iterator tmp = p++;
        s.erase(tmp);
      }
  }
} up, down;
Point P;
int main() {
  in(T), up.op = 1, down.op = -1;
  while (T--) {
    in(op), P.In();
    if (op < 2)
      up.insert(P), down.insert(P);
    else
      puts((up.PIP(P) && down.PIP(P)) ? "YES" : "NO");
  }
}
