#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
****************************************************************/