#include<cstdio>
#include<cstdlib>
#include<cstring>

void solve(int n, int m, int *a, int *l, int *r)
{
	int *cnt = (int*)malloc(sizeof(int) * (m + 2));
	int mx, pos;
	memset(cnt, 0, sizeof(int) * (m + 2));
	for (int i = 0; i < n; ++i)
	{
		cnt[l[i]] += a[i];
		cnt[r[i] + 1] -= a[i];
	}
	
	mx = cnt[0];
	pos = 0;
	
	for (int i = 1; i <= m; ++i)
	{
		cnt[i] += cnt[i - 1];
		if (cnt[i] > mx)
		{
			mx = cnt[i];
			pos = i;
		}
	}
	
	printf("%d %d\n", pos, mx);
	
	delete [] cnt;
	return;
}

int main()
{
	int n, m;
	int *a, *l, *r;
	scanf("%d%d", &n, &m);
	a = new int [n];
	l = new int [n];
	r = new int [n];
	for (int i = 0; i < n; ++i)
	{
		scanf("%d%d%d", &a[i], &l[i], &r[i]);
	}
	
	solve(n, m, a, l, r);
	
	delete [] a;
	delete [] l;
	delete [] r;
	return 0;
}
