var a:array[1..3,1..5000] of integer;
aux:array [1..3]of integer;
j:0..3;
p,l,ct,cs,b,i,n,m,t,k,li:longint;
f,g:text;
function min(x:integer):longint;
var mi:integer;
begin
mi:=300;
l:=p+1;
while (a[l,1]=a[p+1,1]) do
begin
if a[l,3]<mi then
mi:=a[l,3];
l:=l+1;
end;
l:=l-1;
min:=mi;
end;
begin
assign(f,'gardieni.in');
assign(g,'gardieni.out');
reset(f);
rewrite(g);
readln(f,n,t);
for i:=1 to n do
readln(f,a[i,1],a[i,2],a[i,3]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i,1]>a[j,1] then
for li:=1 to 3 do
begin
aux[li]:=a[i,li];
a[i,li]:=a[j,li];
a[j,li]:=aux[li];
end;
ct:=0;
p:=0;
for k:=1 to t do
begin
cs:=min(k);
for i:=1+p to l do
if a[i,1]<a[i,2] then
a[i,1]:=a[i,1]+1
else p:=p+1;
ct:=ct+cs;
end;
writeln(g,ct);
close(f);
close(g);
end.