import math

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

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

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

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

#print(boats)
#print(events)
print(max(mxs))
