#include<iostream>
using namespace std;
#define Max(a,b)(a>b?a:b)
int arry[101][1001][6];
int as[101], bs[101],cs[101];
int main()
{
int n,v1,v2,k;
while(cin>>n>>v1>>v2>>k)
{
memset(as,0,sizeof(as));
memset(bs,0,sizeof(bs));
memset(cs,0,sizeof(cs));
memset(arry,0,sizeof(arry));
for(int i=0;i<n;i++)
cin>>as[i]>>bs[i]>>cs[i];
for(int i=0;i<n;i++)
for(int ii=v1;ii>=0;ii--)
for(int jj=v2;jj>=0;jj--)
for(int kk=k;kk>=0;kk--)
{
int temp=0;
if(ii>=as[i])
temp=max(temp,arry[ii-as[i]][jj][kk]+cs[i]);
if(jj>=bs[i])
temp=max(temp,arry[ii][jj-bs[i]][kk]+cs[i]);
if(kk>=1)
temp=max(temp,arry[ii][jj][kk-1]+cs[i]);
arry[ii][jj][kk]=max(temp,arry[ii][jj][kk]);
}
cout<<arry[v1][v2][k]<<endl;
}
return 0;
}