include [HTML_REMOVED]
using namespace std;
int dp[1005];
struct good
{
int kind,v,w;
};
int main ()
{
vector[HTML_REMOVED] goods;
int n,vmax;
cin>>n>>vmax;
for(int i=1;i<=n;i){
int v,w,s;
cin>>v>>w>>s;
if(s<0)goods.push_back({-1,v,w});
else if(s==0)goods.push_back({0,v,w});
else
{
for(int k=1;k<=s&&kv<=vmax;k=2)
{
goods.push_back({-1,kv,kw});
s-=k;
}
if(s>0)goods.push_back({-1,sv,sw});
}
}
for(auto Good:goods)
{
if(Good.kind==-1)
for(int j=vmax;j>=Good.v;j–){
dp[j]=max(dp[j],dp[j-Good.v]+Good.w);
}
else
for(int j=Good.v;j<=vmax;j){
dp[j]=max(dp[j],dp[j-Good.v]+Good.w);
}
}
cout<<dp[vmax];
}