import sys input = sys.stdin.readline n, s = map(int, input().split()) a = [1, 2] for i in range(n - 2): a.append(a[i] + a[i + 1]) fa = a[:(n // 2)]; fl = len(fa) sa = a[(n // 2):]; sl = len(sa) def dict(a): d = {} st = set([]) l = len(a) for bit in range(1 << l): b = bit f = False while(b): if((b & 3) == 3): f = True break b >>= 1 if(f): continue val = 0 for i in range(l): if((bit >> i) & 1): val += a[i] d[val] = bit st.add(val) return d, st fd, fst = dict(fa) sd, sst = dict(sa) ans = [] for v in fst: nv = s - v if(nv not in sst): continue fbit = fd[v] sbit = sd[nv] if(((fbit >> (fl - 1)) & 1) and (sbit & 1)): continue for i in range(fl): if((fbit >> i) & 1): ans.append(i + 1) for i in range(sl): if((sbit >> i) & 1): ans.append(fl + i + 1) break else: print("No") exit(0) print("Yes") print(*ans)