#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=105;
int n,C,dp[1000][10000];
int w[N],c[N],m[N],new_n;
int neww[N],newc[N],newm[N];
signed main(){
cin>>n>>C;
for(int i=1;i<=n;i++) cin>>w[i]>>c[i]>>m[i];
int newn=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m[i];j<<=1){
m[i]-=j;
newc[++newn]=j*c[i];
neww[newn]=j*w[i];
}
if(m[i]){
newc[++newn]=m[i]*c[i];
neww[newn]=m[i]*w[i];
}
}
for(int i=1;i<=newn;i++){
for(int j=0;j<=C;j++){
if(newc[i]>j) dp[i][j]=dp[i-1][j];
else dp[i][j]=max(dp[i-1][j],dp[i-1][j-newc[i]]+neww[i]);
}
}
cout<<dp[newn][C];
return 0;
}