#include<bits/stdc++.h>
using namespace std;
int w[100006],v[100006],N,V,len,vi,si,wi;
int dp[100006];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>N>>V;
for(int i=1;i<=N;i++){
cin>>vi>>wi>>si;
if(si==-1){
v[++len]=vi,w[len]=wi;
}
else if(si==0){
si=V;
for(int j=1;j<=si;j<<=1){
v[++len]=vi*j,w[len]=wi*j;
si-=j;
}
if(si){
v[++len]=vi*si,w[len]=wi*si;
}
}
else{
for(int j=1;j<=si;j<<=1){
v[++len]=vi*j,w[len]=wi*j;
si-=j;
}
if(si){
v[++len]=vi*si,w[len]=wi*si;
}
}
}
for(int i=1;i<=len;i++){
for(int j=V;j>=v[i];j--){
dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
}
}
cout<<dp[V];
return 0;
}
/**************************************************************
Problem: 1905
User: chenxurui
Language: C++
Result: Accepted
Time:103 ms
Memory:3400 kb
****************************************************************/