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
****************************************************************/