代填坑~
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define INF -0x7ffffff
using namespace std;
int dp[5003];
struct Node{
int p;
int q;
int v;
int q_p;
}item[503];
bool cmp(struct Node a,struct Node b){
return a.q_p < b.q_p;
}
int main(){
int n,m;
while(~scanf("%d%d",&n,&m)){
memset(dp,0,sizeof(dp));
for(int i=0;i<n;++i){
scanf("%d%d%d",&item[i].p,&item[i].q,&item[i].v);
item[i].q_p = item[i].q - item[i].p;
}
sort(item,item+n,cmp);
for(int i=0;i<n;++i){
for(int j=m;j>=item[i].q;--j){
dp[j] = max(dp[j],dp[j-item[i].p]+item[i].v);
}
}
cout << dp[m] << endl;
}
return 0;
}