#include <bits/stdc++.h>
using namespace std;
long long int p[10000001][2], ans[10000001];
pair<pair<long long int, long long int>, vector<long long int> > gr[101];
void add(long long int x, long long int y, long long int g) {
  long long int i;
  vector<long long int> v{};
  gr[g] = make_pair(make_pair(x, y), v);
  for (i = 1; i < g; i++) {
    if ((gr[i].first.first < x && gr[i].first.second > x) ||
        ((gr[i].first.first < y && gr[i].first.second > y))) {
      gr[g].second.push_back(i);
    }
    if ((gr[i].first.first > x && gr[i].first.first < y) ||
        ((gr[i].first.second > x && gr[i].first.second < y))) {
      gr[i].second.push_back(g);
    }
  }
}
bool check(long long int x, long long int y) {
  long long int i = 0;
  if (x == y) {
    return true;
  }
  long long int vis[101];
  for (i = 0; i < 101; i++) {
    vis[i] = 0;
  }
  vis[x] = 1;
  queue<long long int> q;
  q.push(x);
  while (!q.empty()) {
    long long int s = q.front();
    q.pop();
    vector<long long int>::iterator it;
    for (it = gr[s].second.begin(); it != gr[s].second.end(); it++) {
      if (*it == y) {
        return true;
      }
      if (!vis[*it]) {
        vis[*it] = 1;
        q.push(*it);
      }
    }
  }
  return false;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int q, t;
  long long int i = 0, n, m, j, k = 0, x, x_i, y, z;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> z >> x >> y;
    if (z == 1) {
      k += 1;
      add(x, y, k);
    } else {
      if (check(x, y)) {
        cout << "YES\n";
      } else {
        cout << "NO\n";
      }
    }
  }
  return 0;
}
