#include <cstdio>
const int NP = 25;
const int P[NP] = {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 n,m;
int e[NP], re[NP];
void add ( int x, int e[] ) {
for (int i = 0; i < NP; ++i)
for (; x % P[i] == 0; x /= P[i])
++e[i];
}
int build ( int e[] ) {
int x = 1;
for (int i = 0; i < NP; ++i)
for (int j = 0; j < e[i]; ++j)
x *= P[i];
return x;
}
int main() {
freopen("factoriale.in","rt",stdin);
freopen("factoriale.out","wt",stdout);
scanf("%d %d",&n,&m);
for (int i = 0; i < n; ++i) {
int a;
scanf("%d",&a);
for (int j = 1; j <= a; ++j) add(j,e);
}
for (int i = 0; i < NP; ++i) {
if (e[i] % m != 0) {
re[i] = ((e[i]/m)+1)*m - e[i];
}
}
printf("%d\n",build(re));
return 0;
}