#include<bits/stdc++.h>
#define int long long
const int N = 1e5+5;
using namespace std;
int v[N],w[N],m[N],cnt,n,W;
int f[N];
int _=0;
signed main(){
std::ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>W;int v1,w1,m1;
for(int i=1;i<=n;i++){
cin>>v1>>w1>>m1;
for(int j = 1;j<=m1;j<<=1){
v[++cnt] = v1*j;
w[cnt] = w1*j;
m1-=j;
}
if(m1 > 0){
v[++cnt] = v1*m1;
w[cnt] = w1*m1;
}
}
for(int i=1;i<=cnt;i++)
{
for(int j=W;j>=w[i];j--){
f[j] = max(f[j],f[j-w[i]]+v[i]);
}
}
cout<<f[W];
return (_^_^_);
}