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 = X % K y = Y % K a, b = sorted((x, y)) current_dp = defaultdict(int) current_dp[(a, b)] = 0 for a_i in A: c = a_i % K next_dp = defaultdict(int) for (a_prev, b_prev), points_prev in current_dp.items(): sum_three = (a_prev + b_prev + c) % K gain = 1 if sum_three == 0 else 0 new_points = points_prev + gain # Discard a_prev: new state is (b_prev, c) new_a, new_b = b_prev, c if new_a > new_b: new_a, new_b = new_b, new_a key = (new_a, new_b) if next_dp[key] < new_points: next_dp[key] = new_points # Discard b_prev: new state is (a_prev, c) new_a, new_b = a_prev, c if new_a > new_b: new_a, new_b = new_b, new_a key = (new_a, new_b) if next_dp[key] < new_points: next_dp[key] = new_points # Discard c: new state is (a_prev, b_prev) new_a, new_b = a_prev, b_prev if new_a > new_b: new_a, new_b = new_b, new_a key = (new_a, new_b) if next_dp[key] < new_points: next_dp[key] = new_points current_dp = next_dp print(max(current_dp.values()) if current_dp else 0) if __name__ == "__main__": main()