#include using namespace std; typedef long double ld; int n; ld R; const ld EPS = 1e-12; int main(){ ios_base::sync_with_stdio(0);cin.tie(0); int A, B; cin >> n >> R >> A >> B; R += 1e-3; ld a = B; ld b = -A; vector > vec; for (int i = 1; i <= n; i++){ int X, Y; ld x, y; cin >> X >> Y; x = X; y = Y; ld d1 = fabsl(a*x+b*y)/sqrtl(a*a+b*b); if (d1 > R) continue; ld d2 = sqrtl(x*x+y*y); ld len = sqrtl(d2*d2-d1*d1); ld drad = sqrtl(R*R-d1*d1); drad = max((ld)0, drad); if (A == 0){ if (Y < 0) len *= -1; } else if (B == 0){ if (X < 0) len *= -1; } else if (fabsl(d1) < EPS){ if (X < 0) len *= -1; } else { ld a1 = a; ld b1 = b; ld a2 = -b; ld b2 = a; ld c2 = -a2*x-b2*y; ld xprz = c2*b1/(a1*b2-a2*b1); if (xprz < 0) len *= -1; } ld tl = len-drad; ld tr = len+drad; vec.push_back({tl, -1}); vec.push_back({tr, 1}); } int sum = 0; int ans = 0; sort(vec.begin(), vec.end()); for (int i = 0; i < vec.size(); i++){ sum -= vec[i].second; ans = max(ans, sum); } cout << ans; }