N, M = map(int, input().split()) B = list(map(int, input().split())) B.sort() check = [True for i in range(N)] done = [True for i in range(N)] state = True out = [] for i in range(1, N): if done[i]: out.append(B[i]) t = 2 exit_loop = False for j in range(i+1, N): if B[j] == t*B[i]: t += 1 done[j] = False elif B[j] > t*B[i]: state = False exit_loop = True break if exit_loop: break if (t+1)*B[i] <= M: state = False break if state: print(len(out)) [print(i, end=" ") for i in out] else: print(-1)