#include<cstdio>
#include<cstring>
using namespace std;
int a[1100000],b[1100000],n,k, c[1100000];
int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
memset(b,0,sizeof(b));
int i1 = 0;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<=k){
c[i1] = a[i];
i1++;
}
}
int ans = 1,am = 0;
for(int i=0;i<i1;i++)
b[c[i]]++;
for(int i=k;i>=1;i--)
for(int j=2*i;j<=k;j+=i)
b[j]+=b[i];
for(int i=1;i<=k;i++)
if(b[i]>am){
ans = i;
am = b[i];
}
printf("%d %d\n",ans,am);
for(int i=0;i<n;i++)
if(!(ans%a[i]))printf("%d ",i+1);
printf("\n");
}
return 0;
}