#include<stdio.h>
#include<string.h>
FILE *fin=fopen("factoriale.in","r");
FILE *fout=fopen("factoriale.out","w");
int prim[]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int exp[30],rez[60000],n,k,i,j,p,x;
void X_mic(int a[], int b){
int i,t=0;
for(i=1; i<=a[0] || t ; i++,t/=10)
a[i] = (t += a[i] * b) % 10;
a[0] = i - 1;
}
int main(){
fscanf(fin,"%d %d",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&x);
for(j=1;prim[j]<=x && j<=25;j++){
p=prim[j];
while(p<=x){
exp[j]+=x/p;
p*=p;
}
}
}
for(i=1;i<=25;i++){
if(exp[i]%k>0){
exp[i]=k-( exp[i]%k );
}
else exp[i]=0;
}
rez[1]=1;
rez[0]=1;
for(i=1;i<=25;i++){
for(p=1;p<=exp[i];p++){
X_mic(rez,prim[i]);
}
}
for(i=rez[0];i>=1;i--){
fprintf(fout,"%d",rez[i]);
}
return 0;
}