#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const int maxn = 100005;
int n, D1, D2;
double calc(double t, int Ax_, int Ax, int Bx_, int Bx) {
  return ((t * (Ax_ - Bx_) + (1 - t) * (Ax - Bx)) *
          (t * (Ax_ - Bx_) + (1 - t) * (Ax - Bx)));
}
int main() {
  scanf("%d%d%d", &n, &D1, &D2);
  D1 = ((D1) * (D1));
  D2 = ((D2) * (D2));
  int ok, ans = 0, Ax, Ay, Bx, By, Ax_, Ay_, Bx_, By_, dis;
  scanf("%d%d%d%d", &Ax, &Ay, &Bx, &By);
  dis = ((Ax - Bx) * (Ax - Bx)) + ((Ay - By) * (Ay - By));
  if (dis <= D1)
    ++ans, ok = 0;
  else
    ok = 1;
  for (int i = 2; i <= n; i++) {
    Ax_ = Ax;
    Ay_ = Ay;
    Bx_ = Bx;
    By_ = By;
    scanf("%d%d%d%d", &Ax, &Ay, &Bx, &By);
    double l = 0., r = 1.0;
    for (int j = 0; j <= 1000; j++) {
      double l_ = (2 * l + r) / 3, r_ = (l + 2 * r) / 3;
      double d1 = calc(l_, Ax_, Ax, Bx_, Bx) + calc(l_, Ay_, Ay, By_, By);
      double d2 = calc(r_, Ax_, Ax, Bx_, Bx) + calc(r_, Ay_, Ay, By_, By);
      if (d1 < d2)
        r = r_;
      else
        l = l_;
    }
    if (calc(l, Ax_, Ax, Bx_, Bx) + calc(l, Ay_, Ay, By_, By) < D1 + eps && ok)
      ++ans, ok = 0;
    if (((Ax - Bx) * (Ax - Bx)) + ((Ay - By) * (Ay - By)) > D2) ok = 1;
  }
  printf("%d\n", ans);
  return 0;
}
