#include<bits/stdc++.h>
using namespace std;
struct thing{
int a,b;
}t[10000000];
int n,m,num,dp[400000];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
for(int j=1;j<=z;j++){
num++;
t[num].a=x,t[num].b=y;
}
}
for(int i=1;i<=num;i++){
for(int j=m;j>=t[i].b;j--){
dp[j]=max(dp[j],dp[j-t[i].b]+t[i].a);
}
}
cout<<dp[m];
return 0;
}