#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3")
#pragma GCC target("avx")
set<pair<long long, long long>> up, down;
long long ccw(const pair<long long, long long>& a,
              const pair<long long, long long>& b,
              const pair<long long, long long>& c) {
  long long res = a.first * (b.second - c.second) +
                  b.first * (c.second - a.second) +
                  c.first * (a.second - b.second);
  if (res > 0) return 1;
  if (res < 0) return -1;
  return 0;
}
bool in(const pair<long long, long long>& p,
        set<pair<long long, long long>>& convex, const long long& side) {
  if (p == *convex.begin() || p == *convex.rbegin()) return true;
  auto l = convex.lower_bound(p);
  if (l == convex.end() || l == convex.begin()) return false;
  pair<long long, long long> c = *prev(l);
  long long res = ccw(p, *l, c);
  return res != side || !res;
}
void add(const pair<long long, long long>& p,
         set<pair<long long, long long>>& convex, const long long& side) {
  if (convex.size() < 2)
    convex.insert(p);
  else if (!in(p, convex, side)) {
    long long rside = -side;
    convex.insert(p);
    auto np = convex.find(p);
    if (np != convex.begin()) {
      auto l = prev(np);
      while (l != convex.begin()) {
        auto l1 = prev(l);
        if (ccw(*l1, *l, p) == rside) {
          convex.erase(l);
          l = l1;
        } else
          break;
      }
    }
    if (np != --convex.end()) {
      auto l = next(np);
      while (l != --convex.end()) {
        auto l1 = next(l);
        if (ccw(*l, *l1, p) == rside) {
          convex.erase(l);
          l = l1;
        } else
          break;
      }
    }
  }
  return;
}
void add(const long long& x, const long long& y) {
  pair<long long, long long> p = make_pair(x, y);
  add(p, up, 1), add(p, down, -1);
  return;
}
bool in(const pair<long long, long long>& p) {
  return in(p, up, 1) && in(p, down, -1);
}
inline void query(long long x, long long y) {
  cout << (in({x, y}) ? "YES\n" : "NO\n");
  return;
}
signed main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  long long t, x, y;
  cin >> t;
  while (cin >> t >> x >> y) {
    if (t == 1) {
      add(x, y);
    } else {
      query(x, y);
    }
  }
  return 0;
}
