N,M = map(int,input().split()) A = sorted(list(map(int,input().split()))) Aset = set(A) if A[0] != 0: print(-1) exit(0) checked = set() ans = [] for i in range(1, N): # あるべき数を全て走査する if A[i] in checked: # 走査されていれば飛ばす continue ans.append(A[i]) for j in range(A[i] * 2, M + 1, A[i]): # すべてチェックする。鳩ノ巣原理より10^9に行く前に落ちる if j not in Aset: print(-1) exit(0) checked.add(j) print(len(ans)) print(*ans)