#include <stdio.h>
int n, k, x[101], f[26], rez[1000];
int prim[27] = {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};
void descomp(int x)
{
int i, j, k;
for (i = 1; i <= 26 && prim[i] <= x; i++)
{
j = k = prim[i];
while (k <= x)
{
f[i] += x / k;
k *= j;
}
}
}
void inmult(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;
}
void afis()
{
int i;
for (i = rez[0]; i >= 1; i--) printf("%d",rez[i]);
printf("\n");
}
int main()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
int i, j;
scanf("%d %d",&n,&k);
rez[1] = rez[0] = 1;
for (i = 1; i <= n; i++)
{
scanf("%d",x + i);
descomp(x[i]);
}
for (i = 1; i <= 26; i++)
{
if (f[i] % k)
for (j = f[i] % k; j < k; j++) inmult(rez,prim[i]);
}
afis();
return 0;
}