#include<vector>
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n,v;
scanf("%d%d",&n,&v)
vector<vector<int>> dp(2,vector<int>(v+1,0));
vector<int> m(n),w(n),s(n);
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&m[i],&w[i],&s[i]);
}
for(int j=0;j<=v;j++)
{
if(j/w[0]<=m[0])
{
dp[0][j]=j/w[0]*s[0];
}
else
{
dp[0][j]=m[0]*s[0];
}
}
int f=1;
for(int i=1;i<n;i++)
{
for(int j=0;j<=v;j++)
{
dp[f][j]=dp[1-f][j];
for(int z=1;z<=m[i];z++)
{
if(j-z*w[i]>=0)
{
dp[f][j]=max(dp[1-f][j],dp[1-f][j-z*w[i]]+z*s[i]);
}
else
{
break;
}
}
}
f=1-f;
}
cout<<dp[1-f][v]<<endl;
return 0;
}