from bisect import * N, l, r = map(int, input().split()) B = sorted(list(map(int, input().split()))) A = [] zero = 0 for b in B: if b == 0: zero += 1 N -= 1 else: A.append(b) def f(a): if a > 0: return (l + a - 1)//a, r//a else: return (-r -a - 1)//(-a), (-l)//(-a) ans = 1 D = dict() for a in A: mi, ma = f(a) D[a] = bisect_right(A, a) D[mi] = bisect_right(A, mi) D[ma] = bisect_right(A, ma) D[a-1] = bisect_right(A, a-1) D[mi-1] = bisect_right(A, mi-1) D[ma-1] = bisect_right(A, ma-1) for i in range(N): for j in range(i + 1, N): mi1, ma1 = f(A[i]) mi2, ma2 = f(A[j]) mi = max(mi1, mi2, A[i]) - 1 ma = min(ma1, ma2, A[j]) cnt = int(A[i] <= mi) + int(A[j] > ma) if not (l <= A[i] * A[j] <= r): continue ans = max(ans, max(0, D[ma] - D[mi]) + cnt) if l <= 0 <= r: ans += zero print(ans)