#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m;
string poi;
int c[500];
int para[3][500]={0};
int maxnum=0;
int now=1;
int dp[301]={0};
int by,i,j,k,e;
int main(){
  while(cin>>n>>m){
    for(i=0;i<n;i++){
      cin.ignore();
      getline(cin,poi);
      cin>>c[i]>>para[0][i]>>para[1][i]>>para[2][i];
    }
    for(by=0;by<3;by++){
      for(i=0;i<301;i++){
	dp[i]=0;
      }
      for(i=0;i<n;i++){
	for(j=0;j<=m-c[i];j++){
	  now=1;
	  if(dp[j]!=0||j==0){
	    for(k=j+c[i];k<=m;k+=c[i]){
	      dp[k]=max(dp[k],dp[j]+para[by][i]*now);
	      now++;
	    }
	  }
	}
      }
      for(e=0;e<=m;e++){
	maxnum=max(dp[e],maxnum);
      }
    }
    cout<<maxnum<<endl;
    maxnum=0;
  }
  return 0;
}
     