#include #include #include #include #include int main() { using namespace std; int n, k; cin >> n >> k; constexpr int m = 100010; vector>> univ(m); for (int i = 0; i < n; i++) { int s, p, u; cin >> s >> p >> u; univ[u].push_back({s, -p, i}); } for (auto &vec : univ) { sort(vec.begin(), vec.end()); } vector count(m, 0); priority_queue> que; for (int j = 0; j < m; j++) { if (univ[j].empty()) { continue; } auto [s, p, i] = univ[j].back(); univ[j].pop_back(); que.push({s, -count[j], p, i, j}); } for (int _ = 0; _ < k; _++) { auto [s, c, p, i, j] = que.top(); que.pop(); cout << i << "\n"; if (univ[j].empty()) { continue; } auto [ns, np, ni] = univ[j].back(); univ[j].pop_back(); que.push({ns, -count[j], np, ni, j}); count[j]++; } }