#include<bits/stdc++.h>
using namespace std;
int g[20010],f[20010],q[20050],v,w,s;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>v>>w>>s;
memcpy(g,f,sizeof f);
for(int j=0;j<v;j++)
{
int hh=0,tt=-1;//单调队列中存的是上一个状态的下标
for(int k=j;k<=m;k+=v)
{
while(hh<=tt&&q[hh]<k-s*v)hh++;
while(hh<=tt&&g[q[tt]]+(k-q[tt])/v*w<=g[k])tt--;
q[++tt]=k;
f[k]=g[q[hh]]+(k-q[hh])/v*w;
}
}
}
cout<<f[m]<<endl;
return 0;
}