#include<bits/stdc++.h>
using namespace std;
int n,m,x[105],a[105],b[105],c[105],dp[105][505];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>x[i];
cin>>a[i]>>b[i];
if(x[i]==2) cin>>c[i];
}
for(int i=1;i<=n;i++){
for(int j=0;j<=m;j++){
dp[i][j]=max(dp[i][j],dp[i-1][j]);
if(x[i]==1){
for(int k=0;k<=j;k++){
dp[i][j]=max(dp[i][j],dp[i-1][j-k]+a[i]kk-b[i]k);
}
}else if(x[i]==2){
for(int k=0;k<=c[i]&&kb[i]<=j;k++){
dp[i][j]=max(dp[i][j],dp[i-1][j-kb[i]]+ka[i]);
}
}else{
for(int k=0;kb[i]<=j;k++){
dp[i][j]=max(dp[i][j],dp[i-1][j-kb[i]]+k*a[i]);
}
}
}
}
cout<<dp[n][m];
return 0;
}