#include<stdio.h>
long long tr,b,nr[10000],j,a,m[101][10],l,t[101],n,k,i,v[101],max,aux;
int p[50]={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,101};
int main(){
FILE *f=fopen("factoriale.in","r");
fscanf(f,"%lld %lld",&n,&k);
for(i=1;i<=n;i++){
fscanf(f,"%lld",&v[i]);
if(v[i]>max)max=v[i];
}
fclose(f);
for(i=2;i<=max;i++){
aux=i;
j=1;
while(aux!=1){
while(aux%p[j]==0){
aux/=p[j];
m[i][0]++;
m[i][ m[i][0] ]=p[j];
}
j++;
}
}
for(i=1;i<=n;i++){
for(j=2;j<=v[i];j++){
for(l=1;l<=m[ j ][0];l++){
t[ m[ j ][l] ]++;
}
}
}
nr[0]=1;
nr[1]=1;
for(i=2;i<=max;i++){
if(i!=0&&t[i]%k!=0){
a=(k-t[i]%k);
for(l=1;l<=a;l++){
tr=0;
for(j=1;j<=nr[0]||tr;j++){
tr+=nr[j]*i;
nr[j]=tr%10;
tr/=10;
}
nr[0]=j-1;
}
}
}
FILE *g=fopen("factoriale.out","w");
for(i=nr[0];i>=1;i--){
fprintf(g,"%lld",nr[i]);
}
fclose(g);
return 0;
}