#include <bits/stdc++.h>
#define r(i,n) for(int i=0;i<n;i++)
using namespace std;
int dp[2][1200][1200];
int main(){
  memset(dp,-1,sizeof(dp));
  int x,y,n;
  cin>>n>>x>>y;
  dp[0][x+600][y+600]=0;
  r(i,n){
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    r(A,1200)r(B,1200){
      if(~dp[i%2][A][B]){
        dp[(i+1)%2][A][B]=max(dp[(i+1)%2][A][B],dp[i%2][A][B]);
        dp[(i+1)%2][A-a][B+b]=max(dp[(i+1)%2][A-a][B+b],dp[i%2][A][B]);
        dp[(i+1)%2][A][B-c]=max(dp[(i+1)%2][A][B-c],dp[i%2][A][B]+d);
      }
    }
    r(j,1200)r(k,1200)dp[i%2][j][k]=-1;
  }
  int ans=0;
  r(i,1200)r(j,1200){
    if(i>=600&&j>=600){
      ans=max(ans,dp[n%2][i][j]);
    }
  }
  cout<<ans<<endl;
}
