#include using namespace std; typedef long long ll; typedef long double ld; typedef pair pl; #define sl(x) scanf("%lld",&x) #define pl(x) printf("%lld\n",x) #define sf(x) sort(x.begin(),x.end(),func) #define s(x) sort(x.begin(),x.end()) #define all(v) v.begin(),v.end() #define rs(v) { s(v) ; r(v) ; } #define r(v) {reverse(all(v));} #define pb push_back #define mp make_pair #define F first #define S second #define f(i,n) for(int i=0;i= m) a -= m; if(a < 0) a += m; return a;} ll power(ll a, ll b, ll m = mod) { if(b == 0) return 1; if(b == 1) return (a % m); ll x = power(a, b / 2, m); x = mul(x, x, m); if(b % 2) x = mul(x, a, m); return x;} ll n, x, y, dp[N][N]; pair < pl , pl > a[N]; ll solve(ll i, ll p) { if(i == n) return 0; if(dp[i][p] != -1) return dp[i][p]; ll ret = -inf; if(abs(a[i].S.F - a[p].S.F) > x || abs(a[i].S.S - a[p].S.S) > y) { ret = solve(i + 1, p); } else { ret = max(solve(i + 1, p), a[i].F.S + solve(i + 1, i)); } return dp[i][p] = ret; } int main() { ios_base::sync_with_stdio(0); cin >> n >> x >> y; memset(dp, -1, sizeof(dp)); f(i, n) cin >> a[i].S.F >> a[i].S.S >> a[i].F.F >> a[i].F.S; sort(a, a + n); cout << solve(0, 0) << "\n"; return 0; }