#include using namespace std; #define REP(i,n) for(int i=0;i ostream& operator<<(ostream& os,const vector& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; } typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef vector vi; typedef vector vvi; constexpr ll mod = 1e9+7; int main(){ using tu = tuple; int N,K;cin>>N>>K; vi S(N),P(N),U(N); map> mp; map dic; map dicu; rep(i,N){ int s,p,u; cin>>s>>p>>u; u--; dic[make_tuple(s,p)] = i; mp[s].insert(pii(p,u)); dicu[make_pair(s,p)] = u; } vector Univ(N,0); vector ans; for(int i=10;i>=0;i--){ if(!mp.count(i)) continue; if(mp[i].size()==1){ auto itr = mp[i].begin(); int pe = (*itr).first; int un = (*itr).second; ans.push_back(dic[make_tuple(i,pe)]); Univ[un]++; mp[i].erase(pii(pe,un)); } if(mp[i].size()>1){ vector univs; for(auto key : mp[i]) univs.push_back(pii(Univ[key.second],key.first)); sort(ALL(univs)); ans.push_back(dic[make_tuple(i,univs[0].second)]); mp[i].erase(pii(univs[0].second,dicu[pii(i,univs[0].second)])); i++; } if(ans.size()==K) break; } for(int i=0;i