#1441. 互质

互质

题目描述

小Q总是陶醉在数论的海洋里,他知道:数论是数学的皇后。而数论的核心,就是质数!

现在小Q想研究互质问题,a和b互质,即2个数的最大公约数是1,表示为gcd(a,b)=1(即a和b的最大公约数为1)

现在,有N个正整数,从a1到an,你要找出在1到M之间,有多少个整数k能够满足对于任意ai,都有: gcd(ai,k)=1gcd(ai,k)= 1

小Q觉得这是一个很神奇的东东,他有点不会做。他希望有一个数论高手可以来帮助他,你是小Q心目中的数论高手么?来解决这个问题吧!

输入

从文件prime.in中读入数据

输入的第一行是2个正整数N和M。

输入的第二行是N个正整数a1, a2, ..., aN,空格隔开。

输出

输出到文件prime.out中

输出的第一行表示满足条件的k的个数。

接下来若干个,每行一个满足条件的k,从小到大的顺序。

样例

3 12
6 1 5
3
1
7
11
3 20
3 5 8
6
1
7
11
13
17
19

提示

对于所有的数据,保证1<=N<=10^5,1<=M<=10^6,1<=ai<=10^6

其中30%的数据,N,M,ai 均<=10^3

其中30%的数据,N<=10^3,M,ai<=10^6

其中40%的数据,N<=10^5,M,ai<=10^6