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(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (n, m) = (c[0], c[1]); var a = NList; var pcount = new int[m + 1]; foreach (var ai in a) foreach (var p in PList(ai)) ++pcount[p]; var ans = new long[m + 1]; var mod = 998_244_353; for (var i = m; i > 0; --i) { var sub = 1L; for (var j = 0; j < pcount[i]; ++j) sub = (sub << 1) % mod; --sub; for (var j = i * 2; j < ans.Length; j += i) { sub = (sub + mod - ans[j]) % mod; } ans[i] = sub; } WriteLine(string.Join("\n", ans.Skip(1))); } static List PList(int n) { var ans = new List(); var rev = new List(); for (var i = 1; i * i <= n; ++i) { if (n % i == 0) { ans.Add(i); if (i * i < n) rev.Add(n / i); } } rev.Reverse(); return ans.Concat(rev).ToList(); } }