#include<bits/stdc++.h>
using namespace std;
const int N = 2e3 + 10;
int n , m , v[N] , dp[N] , w[N] , s[N] , k = 1 , vi , wi , si;
int main(){
	cin >> n >> m;
	for(int i = 1 ; i <= n ; i++){
		cin >> vi >> wi >> si;
		for(int j = 1 ; j <= si ; j++){
			v[k] = vi ;
			w[k] = wi ;
			k++ ;
		}
	}
	for(int i = 1 ; i <= k - 1 ; i++){
		for(int j = m ; j >= v[i] ; j--){
			dp[j] = max(dp[j] , dp[j-v[i]] + w[i]);
		}
	} 
	cout << dp[m];
	return 0;


}
//30 40 50
//20 30 50
//20 25 30
/**************************************************************
	Problem: 1889
	User: Hawthorne
	Language: C++
	Result: Runtime Error
****************************************************************/