import math

(N, R, A, B) = map(int, input().split())
rot = complex(A, B)/abs(complex(A, B))
boats = [complex(*map(int, input().split())) / rot for i in range(N)]

def solveQuadr(a, b, c):
    if b**2 - 4*a*c < 0:
        return []
    return [(-b - math.sqrt(b**2 - 4*a*c))/2, (-b + math.sqrt(b**2 - 4*a*c))/2]

events = sorted([(x,t) for b in boats for (x,t) in zip(solveQuadr(1, -2*b.real, b.real**2+b.imag**2-R**2), [1, 3])] + [(0.0, 2), (1.0, 2)])

mxs = []
mx = 0
for (x, t) in events:
    if t == 1:
        mx += 1
    if t == 3:
        mx -= 1
    if 0 <= x <= 1:
        mxs.append(mx)

print(max(mxs))
