#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5+7;
ll sum[N], pre[N];
pair<ll, int> a[N];
int b[N], l[N], u[N];
int check(int n, int m, int k)
{
	for(int i = 1; i <= m; i++)
	{
		int p = a[i].second;
		if(sum[m+1]-sum[i]+sum[i-1]+(ll)(k-b[p])*(k >= b[p] ? u[p] : l[p])-pre[n]+pre[m+1]>=0)
		{
			return true;
		}
	}
	for(int i = m+1; i <= n; i++)
	{
		int p = a[i].second;
		if(sum[m]+(ll)(k-b[p])*(k >= b[p] ? u[p] : l[p])-pre[n]+pre[i]-pre[i-1]+pre[m]>=0)
		{
			return true;
		}
	}
	return false;
}
int main()
{
	int n, x;
	scanf("%d%d", &n, &x);
	for(int i = 1; i <= n; i++)
	{
		scanf("%d%d%d", &b[i], &l[i], &u[i]);
		a[i] = make_pair((ll)(x-b[i])*u[i]+(ll)b[i]*l[i], i);
	}
	sort(a+1, a+1+n);
	reverse(a+1, a+1+n);
	for(int i = 1; i <= n; i++)
	{
		pre[i] = pre[i-1]+(ll)b[a[i].second]*l[a[i].second];
		sum[i] = sum[i-1]+(ll)(x-b[a[i].second])*u[a[i].second];
	}
	ll l = 0, r = (ll)n*x;
	while(l<r)
	{
		ll mid = (l+r)>>1;
		//printf("%lld %d\n", mid, check(n, mid/x, mid%x));
		if(check(n, mid/x, mid%x))
		{
			r = mid;
		}
		else
		{
			l = mid+1;
		}
	}
	printf("%lld\n", l);
	return 0;
}