#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;
		}
	}
//	int ans = 0;
	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 (_^_^_);
}