#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int a[N][N],k[N],m[N],c[N],ak[N][N];
int main(){
int n,m,i,i2,i3,mk;
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>m[i]>>c[i]>>k[i];
mk=max(mk,k[i]);
a[0]++;
a[k][a[k][0]]=i;
}
for(i=1;i<=mk;i++){
for(i2=1;i2<=a[i][a[i][0]];i2++){
for(i3=m;i3>=m[a[i][i2]];i3--){
ak[k][i3]=max(ak[k][i3],ak[k][i3-m[a[i][i2]]]+c[a[i][i2]])
}
}
}
big=-1;
for(i=1;i<=mk;i++){
big=max(big,ak[i][m]);
}
cout<<big
return 0;
}