#include "bits/stdc++.h" using namespace std; #define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i)) #define rep(i,j) FOR(i,0,j) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)< pii; typedef vector vi; typedef vector vll; #define mt make_tuple // solved, -penalty, id vector> univ[100001]; int idx[100001]; int main(){ int N, K; cin >> N >> K; vi S(N), P(N), U(N); rep(i, N) { scanf("%d%d%d", &S[i], &P[i], &U[i]); univ[U[i]].emplace_back(-S[i], +P[i], i); } rep(i, 100001) { sort(all(univ[i])); } // +solved, -others, -penalty, univ, id priority_queue > Q; rep(i, 100001) { if(sz(univ[i])) { int s, p, k; tie(s, p, k) = univ[i][0]; Q.push(mt(-s, 0, -p, i, k)); } } rep(i, K) { int s, cnt, p, uni, id; tie(s, cnt, p, uni, id) = Q.top(); Q.pop(); printf("%d\n", id); idx[uni]++; if(idx[uni] < sz(univ[uni])) { tie(s, p, id) = univ[uni][idx[uni]]; Q.push(mt(-s, cnt - 1, -p, uni, id)); } } }