#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 7;
const long long longinf = 1LL << 60;
const int mod = 1e9 + 7;
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
int n, bit[200001];
int get(int i) {
  int s = 0;
  while (i > 0) {
    s = max(bit[i], s);
    i -= i & (-i);
  }
  return s;
}
void update(int i, int x) {
  while (i <= n) {
    bit[i] = max(bit[i], x);
    i += i & (-i);
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < (int)(n + 1); i++) bit[i] = i;
  int m, q;
  cin >> m >> q;
  pair<pair<int, int>, pair<int, int> > p[q + m];
  for (int i = 0; i < (int)(m); i++) {
    int d, l, r;
    cin >> d >> l >> r;
    p[i] = {{d, 1}, {l, r}};
  }
  for (int i = 0; i < (int)(q); i++) {
    int d, l, r;
    cin >> d >> l >> r;
    p[i + m] = {{d, -i}, {l, r}};
  }
  sort(p, p + m + q);
  string ans[q];
  for (int i = 0; i < (int)(m + q); i++) {
    if (p[i].first.second <= 0) {
      if (get(p[i].second.first) >= p[i].second.second) {
        ans[-p[i].first.second] = "Yes";
      } else
        ans[-p[i].first.second] = "No";
    } else {
      int x = lower_bound(bit, bit + n + 1, p[i].second.first) - bit;
      update(x, get(p[i].second.second));
    }
  }
  for (int i = 0; i < (int)(q); i++) cout << ans[i] << endl;
  return 0;
}
