#include <bits/stdc++.h>
using namespace std;
struct STree {
  vector<int> tree, tree2, idx;
  int n;
  void init(int _n) {
    n = _n, tree.resize(4 * n, 0), tree2.resize(4 * n, 0), idx.resize(4 * n, 0);
    build(0, 0, n);
  }
  void clear() { n = 0, tree.clear(), tree2.clear(), idx.clear(); }
  void build(int k, int l, int r) {
    if (l + 1 == r)
      idx[k] = l;
    else if (l < r) {
      build(k * 2 + 1, l, (l + r) / 2);
      build(k * 2 + 2, (l + r) / 2, r);
      idx[k] = idx[k * 2 + 1];
    }
  }
  void push_down(int k) {
    tree[k * 2 + 1] += tree2[k];
    tree2[k * 2 + 1] += tree2[k];
    tree[k * 2 + 2] += tree2[k];
    tree2[k * 2 + 2] += tree2[k];
    tree2[k] = 0;
  }
  void add(int a, int b, int x) { add(a, b, x, 0, 0, n); }
  void add(int a, int b, int x, int k, int l, int r) {
    if (l + 1 < r && tree2[k] != 0) push_down(k);
    if (a <= l && r <= b) {
      tree[k] += x;
      tree2[k] += x;
    } else if (l < b && a < r) {
      add(a, b, x, k * 2 + 1, l, (l + r) / 2);
      add(a, b, x, k * 2 + 2, (l + r) / 2, r);
      if (tree[k * 2 + 1] > tree[k * 2 + 2]) {
        tree[k] = tree[k * 2 + 1];
        idx[k] = idx[k * 2 + 1];
      } else {
        tree[k] = tree[k * 2 + 2];
        idx[k] = idx[k * 2 + 2];
      }
    }
  }
} T;
vector<pair<int, int> > in[300005], out[300005];
int L[100005], V[100005], R[100005];
int n;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d%d", L + i, V + i, R + i);
    in[L[i]].push_back(make_pair(V[i], R[i] + 1));
    out[V[i] + 1].push_back(make_pair(V[i], R[i] + 1));
  }
  int N = 300005;
  T.init(N);
  int ans = 0, LL = 0, RR = 0;
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j < in[i].size(); ++j) {
      T.add(in[i][j].first, in[i][j].second, 1);
    }
    for (int j = 0; j < out[i].size(); ++j) {
      T.add(out[i][j].first, out[i][j].second, -1);
    }
    if (ans < T.tree[0]) {
      ans = T.tree[0];
      LL = i, RR = T.idx[0];
    }
  }
  printf("%d\n", ans);
  for (int i = 0; i < n; ++i) {
    if (L[i] <= LL && LL <= V[i] && V[i] <= RR && RR <= R[i])
      printf("%d ", i + 1);
  }
}
