#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 ((X < 0 && A != 0) || (A == 0 && Y < 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; }