#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

int main(){
	int n,m;
	int c[300],stats[300][3];
	string s;
	while(cin >> n >> m){
		int dp[301][301][3] = {};
		getchar();
		for(int i = 0;i < n;i++) {
			getline(cin,s);
			cin >> c[i] >> stats[i][0] >> stats[i][1] >> stats[i][2];
			getchar();
		}
		for(int i = 1;i <= n;i++){
			for(int j = 0;j <= m;j++){
				for(int k = 0;k < 3;k++){
					if(j - c[i - 1] >= 0) dp[i][j][k] = max(dp[i - 1][j][k],dp[i][j - c[i - 1]][k] + stats[i - 1][k]);
					else dp[i][j][k] = dp[i - 1][j][k];
				}
			}
		}
		int ma = 0;
		for(int i = 0;i < 3;i++) {
			ma = max(ma,dp[n][m][i]);
		}
		cout << ma << endl;
	}
	return 0;
}