#include #define rep(i,a,b) for(int i=a;i=b;i--) #define fore(i,a) for(auto &i:a) #pragma GCC optimize ("-O3") using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); } //--------------------------------------------------------------------------------------------------- /*---------------------------------------------------------------------------------------------------             ∧_∧       ∧_∧  (´<_` )  Welcome to My Coding Space!      ( ´_ゝ`) /  ⌒i     /   \    | |     /   / ̄ ̄ ̄ ̄/  |   __(__ニつ/  _/ .| .|____      \/____/ (u ⊃ ---------------------------------------------------------------------------------------------------*/ #define INF INT_MAX/2 int N, M; int X[101010], A[101010], B[101010]; int cnt[10]; //--------------------------------------------------------------------------------------------------- vector a[101010], b[101010]; void _main() { cin >> N >> M; rep(i, 0, N) cin >> X[i] >> A[i] >> B[i]; rep(i, 0, N) { a[A[i]].push_back(i); b[B[i]].push_back(i); } rep(i, 0, N) X[i]++; rep(i, 0, N) cnt[X[i]]++; int ans = INF; int SB = 100001; rep(SA, 0, 100002) { while (cnt[2] + cnt[3] + cnt[4] + cnt[5] < M) { SB--; if (SB < 0) break; fore(i, b[SB]) { cnt[X[i]]--; X[i]++; cnt[X[i]]++; } } if (cnt[2] + cnt[3] + cnt[4] + cnt[5] < M) break; ans = min(ans, cnt[3] + cnt[4] + cnt[5]); fore(i, a[SA]) { cnt[X[i]]--; X[i]--; cnt[X[i]]++; } } cout << ans << endl; }