#include <bits/stdc++.h>
#define Set(a, v) memset(a, v, sizeof(a))
using namespace std;
inline bool chkmin(int &a, int b) {return b < a ? a = b, 1 : 0;}
inline bool chkmax(int &a, int b) {return b > a ? a = b, 1 : 0;}
const int N = 1e5 + 1e3;
int fuck[N][31];
int main () {
	int n,c;
	cin>>n;
	cin>>c;
	for(int i=1;i<=n;i++){
		int S,T,cn;
		cin>>S>>T>>cn;
		++fuck[S][cn];
		--fuck[T+1][cn];
	}
	int cao[31]={0};
	int ooh=0;
	for(int i=1;i<=1e5+1e3;i++){
		int now = 0;
		for(int j=1;j<=c;j++){
			cao[j]+=fuck[i][j];
			if(cao[j])++now;
		}
		chkmax(ooh,now);
	}
	cout<<ooh<<endl;
    return 0;
}