#include <iostream>
using namespace std;
const int N=1e7+10;
int n,W,idx;
int w[N],v[N],s[N];
int f[N];
int main()
{
cin>>n>>W;
for(int i=1; i<=n; i++)
{
int vi,wi,si;
cin>>vi>>wi>>si;
for(int k=1; k<=si; k<<1)
{
++idx;
v[idx]=k*vi;
w[idx]=k*wi;
si-=k;
}
v[++idx]=si*vi;
w[idx]=si*wi;
}
for(int i=1; i<=idx; i++)
{
for(int j=W; j>=w[i]; j--)
{
f[j]=max(f[j],f[j-w[i]]+v[i]);
}
}
cout<<f[W];
return 0;
}