#include <bits/stdc++.h>
#define nx 1100
using namespace std;
typedef long long ll;
struct node{
int lose;
int win;
int use;
};
ll n,m;
node a[nx];
ll dp[nx][nx];
int main(){
cin>>n>>m;
fill(dp[0],dp[0]+n*m,0);
for(ll i = 1;i<=n;++i){
cin>>a[i].lose>>a[i].win>>a[i].use;
}
for(ll i = 1;i<=n;++i){
for(ll j = 0;j<=m;++j){
if(j>=a[i].use){
dp[i][j]=max(dp[i-1][j]+a[i].lose,dp[i-1][j-a[i].use]+a[i].win);
}else{
dp[i][j]+=a[i].lose;
}
}
}
ll t = dp[n][m];
t*=5;
cout<<t;
return 0;
}