#include<bits/stdc++.h>
using namespace std;
int dp[20000];
int cnt=1;
int v[20000],w[20000];
int main(){
int N,V;
cin>>N>>V;
for(int i=1;i<=N;i++){
int a,b,s; //vi,wi,si
cin>>a>>b>>s;
int k=1;
while(k<=s){
v[cnt]=k*a;
w[cnt++]=k*b;
s=s-k;
k=k*2;
}
if(s>0){
v[cnt]=s*a;
w[cnt++]=s*b;
}
}
for(int i=1;i<=cnt;i++){
for(int j=V;j>=v[i];j--){
dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
}
}
cout<<dp[V];
}
/**************************************************************
Problem: 1889
User: caizhihao
Language: C++
Result: Accepted
Time:163 ms
Memory:2308 kb
****************************************************************/