k = 0 while True: d = [2**k, 3] v = 2 ** k * 3 - 2**k - 3 cand = [] for i in range(k+1): for j in range(2): w = 2**i * 3**j if v != 2**k and v != 3: cand.append(w) cand.sort() for w in cand[::-1]: if w <= v: d.append(w) v -= w if v == 0 and len(d) == 10: break k += 1 d.append(2) print(len(d)) print(*sorted(d))