import sys from collections import defaultdict def main(): N, K, X, Y = map(int, sys.stdin.readline().split()) A = list(map(int, sys.stdin.readline().split())) x_mod = X % K y_mod = Y % K a, b = sorted((x_mod, y_mod)) current_dp = {(a, b): 0} for c_val in A: c = c_val % K next_dp = defaultdict(int) for (a_prev, b_prev), points in current_dp.items(): sum_three = (a_prev + b_prev + c) % K add_point = 1 if sum_three == 0 else 0 new_points = points + add_point # Discard a_prev new_a = min(b_prev, c) new_b = max(b_prev, c) if new_points > next_dp[(new_a, new_b)]: next_dp[(new_a, new_b)] = new_points # Discard b_prev new_a = min(a_prev, c) new_b = max(a_prev, c) if new_points > next_dp[(new_a, new_b)]: next_dp[(new_a, new_b)] = new_points # Discard c new_a = min(a_prev, b_prev) new_b = max(a_prev, b_prev) if new_points > next_dp[(new_a, new_b)]: next_dp[(new_a, new_b)] = new_points current_dp = dict(next_dp.items()) if current_dp: print(max(current_dp.values())) else: print(0) if __name__ == "__main__": main()