#include<bits/stdc++.h>
#define fast {ios_base::sync_with_stdio(false);cin.tie(NULL);}
using namespace std;	

const int mxn=2e5+5,mod=1e9+7;

int main(void){
	fast;
	int n,m,i,j;
	cin>>n>>m;
	string s[n];
	char t[n];
	int sw[n],p[n];
	for(i=0;i<n;i++)
		cin>>s[i]>>t[i]>>sw[i]>>p[i];
	int dp[n+1][m+1][2];
	memset(dp,0,sizeof dp);
	for(i=0;i<n;i++){
		for(j=1;j<=m;j++){
			if(t[i]=='S'){
				if(sw[i]<=j){
					dp[i+1][j][0]=max(dp[i][j][0],dp[i][j-sw[i]][0]+p[i]);
					dp[i+1][j][1]=max({dp[i][j][1],dp[i][j-sw[i]][1]+p[i],dp[i][j-sw[i]/2][0]+p[i]});
				}
				else if(sw[i]/2<=j){
					dp[i+1][j][1]=max(dp[i][j-sw[i]/2][0]+p[i],dp[i][j][1]);
					dp[i+1][j][0]=dp[i][j][0];
				}
				else{
					dp[i+1][j][0]=dp[i][j][0];
					dp[i+1][j][1]=dp[i][j][1];
				}

			}
			else{
				dp[i+1][j][0]=dp[i][j][0];
				dp[i+1][j][1]=dp[i][j][1];
			}
		}
	}
	cout<<max(dp[n][m][0],dp[n][m][1]);	
}
