N, R, a, b = [int(i) for i in input().split(" ")]
import math

intervals = []

if b == 0: # y = 0
    for i in range(N):
        X, Y = [int(i) for i in input().split(" ")]
        D = 4*X*X - 4*(X*X + Y*Y - R*R)
        if D == 0:
            x = X
            intervals.append((x, 0))
            intervals.append((x, 1))
        elif D > 0:
            x1 = (2*X - math.sqrt(D)) / 2
            x2 = (2*X + math.sqrt(D)) / 2
            intervals.append((x1, 0))
            intervals.append((x2, 1))

elif a == 0: # x = 0
    for i in range(N):
        X, Y = [int(i) for i in input().split(" ")]
        D = 4 * Y * Y - 4 * (X * X + Y * Y - R * R)
        if D == 0:
            y = Y
            intervals.append((y, 0))
            intervals.append((y, 1))
        elif D > 0:
            y1 = (2 * Y - math.sqrt(D)) / 2
            y2 = (2 * Y + math.sqrt(D)) / 2
            intervals.append((y1, 0))
            intervals.append((y2, 1))

else: # ay = bx
    for i in range(N):
        X, Y = [int(i) for i in input().split(" ")]
        A = ((b*b)/(a*a) + 1)
        B = (-2*X-2*Y*(b/a))
        C = (X*X + Y*Y - R*R)

        D = B*B - 4*A*C

        if D == 0:
            x = -B / (2*A)
            intervals.append((x, 0))
            intervals.append((x, 1))
        elif D > 0:
            x1 = (-B - math.sqrt(D)) / (2*A)
            x2 = (-B + math.sqrt(D)) / (2*A)
            intervals.append((x1, 0))
            intervals.append((x2, 1))

intervals = sorted(intervals)
maxi = 0
current = 0
for i in intervals:
    if i[1] == 0:
        current += 1
        maxi = max(current, maxi)
    else:
        current -= 1

print(maxi)
