Program p1;
const p:array[1..25]of longint=(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);
Var n,k,i,aa,la,j,t,jj,pp,tt:longint;
a:array[1..10000] of longint;
h:array[1..30] of longint;
f,ff:text;
Begin
assign(f,'factoriale.in');
reset(f);
assign(ff,'factoriale.out');
rewrite(ff);
readln(f,n,k);
for i:=1 to n do
begin
read(f,aa);
for j:=1 to 25 do
begin
pp:=p[j];
while(aa div pp>0) do
begin
h[j]:=h[j]+(aa div pp);
pp:=pp*p[j];
end;
end;
end;
a[1]:=1;
la:=1;
for i:=1 to 25 do
if h[i] mod k>0 then
for jj:=1 to (h[i] div k)*k+k-h[i] do
begin
t:=0;
for j:=1 to la do
begin
tt:=t;
t:=(a[j]*p[i]+tt) div 10;
a[j]:=(a[j]*p[i]+tt) mod 10;
end;
while(t>0)do begin inc(la); a[la]:=t mod 10; t:=t div 10;end;
end;
for i:=la downto 1 do
Write(ff,a[i]);
Writeln(ff);
close(f);
close(ff);
End.