#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; #define rep(i,n) for(int i = 0; i < (int)(n); ++i) int s[100010], p[100010], u[100010], r[100010], id[100010]; int main() { int n, k; cin >> n >> k; for (int i = 0; i < n; i++) { cin >> s[i] >> p[i] >> u[i]; } iota(id, id + n, 0); sort(id, id + n, [&](int a, int b) { return make_tuple(-s[a], p[a]) < make_tuple(-s[b], p[b]); }); map univ_cnt; for (int i = 0; i < n; i++) { r[id[i]] = univ_cnt[u[id[i]]]; ++univ_cnt[u[id[i]]]; } sort(id, id + n, [&](int a, int b) { return make_tuple(-s[a], r[a], p[a]) < make_tuple(-s[b], r[b], p[b]); }); for (int i = 0; i < k; i++) { cout << id[i] << '\n'; } }