#include <bits/stdc++.h>
using namespace std;
static long long m2[4000000], m3[200000], m4[200000], m5[200000];
static pair<pair<long long, long long>, long long> pr[200000], pr1[200000];
static pair<long long, long long> pm1[4000000];
void pu(long long cu) {
  m2[2 * cu + 1] += m2[cu];
  m2[2 * cu + 2] += m2[cu];
  pm1[cu].first += m2[cu];
  m2[cu] = 0;
}
void fir(long long cu, long long l, long long r) {
  if (l == r - 1) {
    pm1[cu] = make_pair(0, l);
    return;
  }
  fir(cu * 2 + 1, l, (l + r) / 2);
  fir(cu * 2 + 2, (l + r) / 2, r);
  pm1[cu] = make_pair(0, r - 1);
}
void upd(long long cu, long long l, long long r, long long L, long long R,
         long long val) {
  pu(cu);
  if (l >= R || L >= r) return;
  if (L <= l && r <= R) {
    m2[cu] += val;
    pu(cu);
    return;
  }
  upd(cu * 2 + 1, l, (l + r) / 2, L, R, val);
  upd(cu * 2 + 2, (l + r) / 2, r, L, R, val);
  pm1[cu] = max(pm1[cu * 2 + 1], pm1[cu * 2 + 2]);
}
pair<long long, long long> gt(long long cu, long long l, long long r,
                              long long L, long long R) {
  if (l >= R || L >= r) return make_pair(0, 0);
  if (L <= l && r <= R) {
    pu(cu);
    return pm1[cu];
  }
  pu(cu);
  return max(gt(cu * 2 + 1, l, (l + r) / 2, L, R),
             gt(cu * 2 + 2, (l + r) / 2, r, L, R));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long n, a = 0, b = 0, res = 0, l = 0, r = 0;
  pair<long long, long long> pp;
  cin >> n;
  fir(0, 0, 400000);
  for (long long i = 0; i < n; ++i) {
    cin >> pr[i].first.first >> pr[i].first.second >> pr[i].second;
    m3[i] = pr[i].first.first;
    m4[i] = pr[i].first.second;
    m5[i] = pr[i].second;
    pr1[i] = pr[i];
    swap(pr1[i].first.first, pr1[i].first.second);
  }
  sort(pr, pr + n);
  sort(pr1, pr1 + n);
  for (long long i = 0; i <= 300000; ++i) {
    while (a < n && pr[a].first.first == i) {
      upd(0, 0, 400000, pr[a].first.second, pr[a].second + 1, 1);
      ++a;
    }
    pp = gt(0, 0, 400000, 0, 400000);
    if (pp.first > res) {
      res = pp.first;
      l = i;
      r = pp.second;
    }
    while (b < n && pr1[b].first.first == i) {
      upd(0, 0, 400000, pr1[b].first.first, pr1[b].second + 1, -1);
      ++b;
    }
  }
  cout << res << endl;
  for (long long i = 0; i < n; ++i)
    if (l <= m4[i] && r >= m4[i] && l >= m3[i] && r <= m5[i])
      cout << i + 1 << ' ';
  return 0;
}
