k, x = map(int, input().split()) if x == 0: print("Yes") print(1) print(k ^ 1) exit() if k == 0: x += 1 logx = x.bit_length() - 1 if 2**logx != x: print("No") exit() ans = [] point = 0 for i in range(2**20): if logx-point == 1: if i&-i == i and i != 0: ans += [i, i] point += 1 else: ans += [i] point += 1 else: if i&-i == i and i != 0: ans += [i, i] point += 1 else: ans += [i,i] point += 2 if logx-point == 0: break if 2**(max(ans).bit_length()) < k: ans.append(k) print("Yes") print(len(ans)) print(*ans)