#define max(a,b)((a)>(b)?(a):(b))
D[3][301];
main(n,s,m){
	int i,j,c,p;
	for(;~scanf("%d%d",&n,&m);){
		memset(D,0,sizeof(D));
		for(;n--;){
			scanf("\n%[^\n]%d",s,&c);
			for(i=0;i<3;i++){
				scanf("%d",&p);
				for(j=c;j<=m;j++)
					D[i][j]=max(D[i][j],D[i][j-c]+p);
			}
		}
		p=0;
		for(i=0;i<3;i++)
			for(j=0;j<=m;j++)
				p=max(p,D[i][j]);
		printf("%d \n",p);
	}
}