#include<iostream>
using namespace std;
int n,x;
long long sum;//记录所有输的经验
long long e[1050];
long long u[1050];
long long dp[1050];
int main(){
cin >> n >> x;
long long l,w;
int i,j;
for(i = 1; i <= n; ++i){
cin >> l >> w >> u[i];
sum += l;
e[i] = w - l;//差值背包
}
for(i = 1; i <= n; ++i){
for(j = x; j >= 0; --j){//这里为什么j要到0
if(j >= u[i])dp[j] = max(dp[j],dp[j-u[i]]+e[i]);//正常的一维01背包代码
}
}
cout <<dp[x] * 5+ sum * 5;
return 0;
}