#include<bits/stdc++.h>
using namespace std;
int a,b,c,cnt=1,maxw,n;
int dp[100005];
int w[100005],v[100005];
int max(int a,int b){
	return a>b?a:b;
}
int main(){
	scanf("%d%d",&n,&maxw);
	for(int i=1;i<=n;i++){
		scanf("%d%d%d",&b,&a,&c);
		for(int j=1;j<=c;j<<=1){
			v[++cnt]=j*a,w[cnt]=j*b;
			c-=j;
		}
		if(c){
			v[++cnt]=a*c;
			w[cnt]=b*c;
		}
	}
	for(int i=1;i<=cnt;i++){
		for(int j=maxw;j>=w[i];--j){
			dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
		}
	}
	printf("%d",dp[maxw]);
	return 0;
}

/**************************************************************
	Problem: 1889
	User: liangshinan
	Language: C++
	Result: Accepted
	Time:77 ms
	Memory:3248 kb
****************************************************************/