# 再掲:実装 def solve(N, K, X, Y): A = [0] * N A[0] = X A[N-1] = Y for i in range(1, N-1): if i < K + 1: A[i] = 0 else: S = 0 for j in range(i-K, i): S ^= A[j] if S + 1 >= 2**20: return "No", [] A[i] = S + 1 for i in range(K + 1, N): S = 0 for j in range(i-K, i): S ^= A[j] if S >= A[i]: return "No", [] return "Yes", A N, K, X, Y = map(int, input().split()) result, A = solve(N, K, X, Y) print(result) if result == "Yes": print(*A)