#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 111111;
const int MAX_M = 333333;
int n;
int N = 0;
struct man {
  int l, v, r;
  int id;
  bool operator<(const man& p) const { return l < p.l; }
} p[MAX_N], q[MAX_N];
int ma[MAX_M << 2], ind[MAX_M << 2], add[MAX_M << 2];
void push(int rt) {
  if (add[rt]) {
    add[(rt << 1)] += add[rt];
    ma[(rt << 1)] += add[rt];
    add[(rt << 1 | 1)] += add[rt];
    ma[(rt << 1 | 1)] += add[rt];
    add[rt] = 0;
  }
}
void up(int rt) {
  ma[rt] = max(ma[(rt << 1)], ma[(rt << 1 | 1)]);
  if (ma[(rt << 1)] >= ma[(rt << 1 | 1)])
    ind[rt] = ind[(rt << 1)];
  else
    ind[rt] = ind[(rt << 1 | 1)];
  add[rt] = 0;
}
void build(int l, int r, int rt) {
  if (l == r) {
    add[rt] = 0;
    ind[rt] = l;
    ma[rt] = 0;
    return;
  }
  int m = l + r >> 1;
  build(l, m, (rt << 1));
  build(m + 1, r, (rt << 1 | 1));
  up(rt);
}
void update(int nl, int nr, int v, int l, int r, int rt) {
  if (nl <= l && r <= nr) {
    add[rt] += v;
    ma[rt] += v;
    return;
  }
  push(rt);
  int m = l + r >> 1;
  if (nl <= m) update(nl, nr, v, l, m, (rt << 1));
  if (nr > m) update(nl, nr, v, m + 1, r, (rt << 1 | 1));
  up(rt);
}
int main() {
  ios_base::sync_with_stdio(false);
  while (cin >> n) {
    N = 0;
    for (int i = 0; i < n; i++) {
      cin >> q[i].l >> q[i].v >> q[i].r;
      q[i].id = i;
      N = max(N, q[i].r);
      p[i] = q[i];
    }
    sort(p, p + n);
    int ans = 0, ansl = 0, ansr = 0;
    build(1, N, 1);
    priority_queue<pair<int, int>, vector<pair<int, int> >,
                   greater<pair<int, int> > >
        pq;
    for (int i = 0; i < n; i++) {
      man t = p[i];
      while (pq.size() && pq.top().first < t.l) {
        int id = pq.top().second;
        int tl = q[id].l, tr = q[id].r;
        update(tl, tr, -1, 1, N, 1);
        pq.pop();
      }
      update(t.v, t.r, 1, 1, N, 1);
      pq.push(pair<int, int>(t.v, t.id));
      if (ma[1] > ans) {
        ans = ma[1];
        ansl = t.l, ansr = ind[1];
      }
    }
    cout << ans << endl;
    for (int i = 0; i < n; i++) {
      if (q[i].l <= ansl && q[i].r >= ansr && ansl <= q[i].v && q[i].v <= ansr)
        cout << i + 1 << " ";
    }
    cout << endl;
  }
  return 0;
}
