using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); static int[] LList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => int.Parse(ReadLine())).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (n, m) = (c[0], c[1]); var a = NList; Array.Sort(a); var dic = new Dictionary(); foreach (var ai in a) dic[ai] = 0; var ans = new List(); foreach (var ai in a) { if (ai == 0) continue; if (dic[ai] > 0) continue; ans.Add(ai); for (var b = ai; b <= m; b += ai) { if (!dic.ContainsKey(b)) { WriteLine(-1); return; } ++dic[b]; } } WriteLine(ans.Count); WriteLine(string.Join(" ", ans)); } }