#include <bits/stdc++.h>
using namespace std;
int n,V;
int v[100005],w[100005],m[100005];
long long f[2][10000005];
long long res=0;
int main(){
cin>>n>>V;
for(int i=1;i<=n;i++){
cin>>v[i]>>w[i]>>m[i];
}
for(int i=1;i<=n;i++){
for(int j=0;j<=V;j++){
f[i%2][j]=f[(i-1)%2][j];
}
for(int j=w[i];j<=V;j++){
for(int k=1;k<=j/w[i]&&k<=m[i];k++){
f[i%2][j]=max(f[i%2][j],f[(i-1)%2][j-w[i]*k]+v[i]*k);
}
}
}
for(int j=0;j<=V;j++){
res=max(res,f[n%2][j]);
}
cout<<res<<endl;
}