#include<stdio.h>
int nr,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,"%d %d",&n,&k);
for(i=1;i<=n;i++){
fscanf(f,"%d",&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=1;
for(i=2;i<=max;i++){
if(i!=0&&t[i]%k!=0){
a=(k-t[i]%k);
nr*=i*a;
}
}
FILE *g=fopen("factoriale.out","w");
fprintf(g,"%d",&nr);
fclose(g);
return 0;
}