#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
const int M = 6e5 + 10;
struct tree {
  int val[M * 4], pos[M * 4], tag[M * 4];
  void push_up(int x) {
    if (val[x << 1] > val[x << 1 | 1]) {
      pos[x] = pos[x << 1];
      val[x] = val[x << 1];
    } else {
      pos[x] = pos[x << 1 | 1];
      val[x] = val[x << 1 | 1];
    }
  }
  void push_down(int x) {
    val[x << 1] += tag[x];
    val[x << 1 | 1] += tag[x];
    tag[x << 1] += tag[x];
    tag[x << 1 | 1] += tag[x];
    tag[x] = 0;
  }
  void build(int x, int l, int r) {
    if (l == r) {
      pos[x] = l;
      return;
    }
    int mid = l + r >> 1;
    build(x << 1, l, mid);
    build(x << 1 | 1, mid + 1, r);
    pos[x] = pos[x << 1];
  }
  void update(int x, int l, int r, int tl, int tr, int v) {
    push_down(x);
    if (l >= tl && r <= tr) {
      val[x] += v;
      tag[x] += v;
      return;
    }
    int mid = l + r >> 1;
    if (tl <= mid) update(x << 1, l, mid, tl, tr, v);
    if (tr > mid) update(x << 1 | 1, mid + 1, r, tl, tr, v);
    push_up(x);
  }
} t;
int n;
struct node {
  int l, r, h;
  bool flag;
  node() { l = r = flag = 0; }
  node(int L, int R, int H, bool F) {
    l = L;
    r = R;
    h = H;
    flag = F;
  }
} P[N * 2];
int read() {
  int Suzuha;
  scanf("%d", &Suzuha);
  return Suzuha;
}
int v[N * 2], l[N * 2], r[N * 2], cnt, lim;
int ans, ans_x, ans_y;
bool cmp(node a, node b) {
  if (a.h != b.h) return a.h < b.h;
  return a.flag > b.flag;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    l[i] = read();
    v[i] = read();
    r[i] = read();
    lim = max(lim, r[i]);
    P[++cnt] = node(l[i], v[i], v[i], 1);
    P[++cnt] = node(l[i], v[i], r[i], 0);
  }
  t.build(1, 1, lim);
  sort(P + 1, P + 1 + cnt, cmp);
  for (int i = 1; i <= cnt; i++) {
    t.update(1, 1, lim, P[i].l, P[i].r, P[i].flag ? 1 : -1);
    if (t.val[1] > ans) {
      ans = t.val[1];
      ans_x = t.pos[1];
      ans_y = P[i].h;
    }
  }
  cout << ans << endl;
  for (int i = 1; i <= n; i++)
    if (l[i] <= ans_x && ans_x <= v[i] && v[i] <= ans_y && ans_y <= r[i])
      cout << i << ' ';
}
