from bisect import bisect_right N,K,L,U = map(int,input().split()) A = list(map(int,input().split())) A.sort() now_li = 0 now_ui = bisect_right(A,U-L+A[0]) - 1 now_l = A[0] if now_ui == N-1: print(0) else: while now_ui < N-1: if A[now_ui+1] - (now_l + U - L) < A[now_li+1] - now_l: now_l = A[now_ui+1] - U + L now_ui += 1 else: now_l = A[now_li] now_li += 1 if N - 1 - now_ui <= now_li: break now_u = now_l + U - L ans = 0 for a in A: ans += max(now_l - a + K - 1, 0)//K ans += max(a - now_u + K - 1, 0)//K print(ans)