var
v,w,s,f:array[0..6001]of longint;
i,j,k,n,m:longint;
function max(x,y:longint):longint;
begin
if x>y then exit(x);
exit(y);
end;
begin
readln(n,m);
for i:=1 to n do
readln(v[i],w[i],s[i]);
for i:=1 to n do
for j:=m downto 0 do
for k:=0 to s[i] do
begin
if j-k*v[i]<0 then break;
f[j]:=max(f[j],f[j-k*v[i]]+w[i]*k);
end;
writeln(f[m]);
end.
/**************************************************************
Problem: 2077
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/