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 = 0 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, bisect_right(A, ma) - bisect_right(A, mi) + cnt) if l <= 0 <= r: ans += zero print(ans)