#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
const long long mod=998244353;
long long p[N],num[N];
long long c[N][N];
int maxx=0;
int solve(int n,int d)
{
int ans=1;
for(int i=2;i<=n;i++)
{
int k=0;
while(n%i==0)
{
n/=i;
k++;
}
if(k!=0)
{
maxx=max(maxx,i);
}
c[i][d]=k;
ans*=k+1;
}
return ans;
}
int main()
{
int n,w;
cin>>n>>w;
for(int i=1;i<=n;i++)
{
cin>>p[i];
num[i]=solve(p[i],i);
}
for(int i=2;i<=w;i++)
{
if(w==1) break;
while(w%i==0)
{
w/=i;
int t=0;
maxx=max(maxx,i);
for(int j=1;j<=n;j++)
{
if(t==0||c[i][j]<c[i][t]) t=j;
}
c[i][t]++;
}
}
unsigned long long ans=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=maxx;j++)
{
ans*=(c[j][i]+1);
ans%=mod;
}
}
cout<<ans;
}