#include <bits/stdc++.h>
using namespace std;

int v[110],w[110],f[110],s[110];

int main() {
	int n,m;
	cin>>n>>m;
	for(int i = 1;i <= n;i++){
		cin>>v[i]>>w[i]>>s[i];
	} 
	
	//循环i件物品
	for(int i = 1; i <= n; i++) {
		//每种物品有si件,可以认为有s[i]个物品
		for(int k = 1;k <= s[i];k++){
			//逆序循环背包容量,转换为01背包
			for(int j = m;j >= v[i];j--){
				f[j] = max(f[j],f[j-v[i]]+w[i]);
			} 
		} 
	}
	
	cout<<f[m];
}
/**************************************************************
	Problem: 1888
	User: admin
	Language: C++
	Result: Accepted
	Time:30 ms
	Memory:2076 kb
****************************************************************/