#include <bits/stdc++.h>
using namespace std;
const int N = 300000 + 7;
const int M = 300;
const int mod = 999983;
const int inf = 1e9 + 7;
const double pi = acos(-1);
const int maxn = N * 2;
const double PI = acos(-1);
int n, k;
int lo[N], mid[N], ri[N];
int id[N];
priority_queue<pair<int, int> > heap, current;
bool check[N];
bool cmp(int u, int v) {
  return make_pair(mid[u], ri[u]) < make_pair(mid[v], ri[v]);
}
set<int> st;
int a[N * 4], b[N * 4];
int pos[N * 4];
void update(int i, int l, int r, int u, int v, int val) {
  if (l == u && r == v) {
    if (l == r) pos[i] = l;
    a[i] += val;
    b[i] += val;
    return;
  }
  int g = (l + r) >> 1, nxt = i << 1;
  if (b[i]) {
    update(nxt, l, g, l, g, b[i]);
    update(nxt + 1, g + 1, r, g + 1, r, b[i]);
    b[i] = 0;
  }
  if (u <= g) update(nxt, l, g, u, min(g, v), val);
  if (g < v) update(nxt + 1, g + 1, r, max(u, g + 1), v, val);
  a[i] = max(a[nxt], a[nxt + 1]);
  if (a[nxt] > a[nxt + 1])
    pos[i] = pos[nxt];
  else
    pos[i] = pos[nxt + 1];
}
void solve() {
  cin >> n;
  for (int i = (0); i < (n); i++) {
    scanf("%d%d%d", lo + i, mid + i, ri + i);
    st.insert(lo[i]);
    st.insert(mid[i]);
    st.insert(ri[i]);
    id[i] = i;
  }
  k = *st.rbegin();
  for (int i = 1; i <= k; i++) update(1, 1, k, i, i, 0);
  sort(id, id + n, cmp);
  int i = 0;
  int ans = 0;
  int ansL = -1, ansR = -1;
  for (__typeof((st).begin()) it = (st).begin(); it != (st).end(); it++) {
    int R = *it;
    while (i < n && mid[id[i]] <= R) {
      heap.push(make_pair(ri[id[i]], id[i]));
      i++;
    }
    while (!heap.empty() && heap.top().first >= R) {
      int u = heap.top().second;
      heap.pop();
      update(1, 1, k, lo[u], mid[u], 1);
      check[u] = 1;
      current.push(make_pair(-ri[u], u));
    }
    while (!current.empty() && -current.top().first < R) {
      int u = current.top().second;
      update(1, 1, k, lo[u], mid[u], -1);
      check[u] = 0;
      current.pop();
    }
    if (ans < a[1]) {
      ans = a[1];
      ansL = pos[1];
      ansR = R;
    }
  }
  cout << ans << "\n";
  for (int i = 0; i < n; i++) {
    if (lo[i] <= ansL && ansL <= mid[i] && mid[i] <= ansR && ansR <= ri[i]) {
      printf("%d ", i + 1);
    }
  }
}
int main() {
  int T = 1;
  for (int i = (1); i < (T + 1); i++) {
    solve();
  }
}
