#include<bits/stdc++.h>
using namespace std;
int n,wi,W,ui,vi,w[100000],mi,k=0,dp[100005],v[1000005];
int main(){
cin>>n>>W;
for(int i=1;i<=n;i++){
cin>>vi>>wi>>mi;
int t=1;
while(t<=mi){
k++;
w[k]=t*wi;
v[k]=t*vi;
mi-=t;
t*=2;
}
if(mi>0){
k++;
w[k]=ui*mi;
v[k]=vi*mi;
}
}
for(int i=1;i<=k;i++){
for(int j=W;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
cout<<dp[W];
return 0;
}