const p:array[1..25] of byte=(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 nr:array[1..25] of longint; n,i,j,k,xx,nn,rez,r,kk:longint; f,g:text; x:byte;
begin
assign(f,'factoriale.in'); reset(f);
assign(g,'factoriale.out'); rewrite(g);
read(f,n,k);
for i:=1 to n do begin
read(f,x);
for j:=2 to x do begin
xx:=j;
kk:=1;
repeat
while xx mod p[kk]=0 do begin
xx:=xx div p[kk];
inc(nr[kk]);
end;
kk:=kk+1;
until xx=1;
end;
end;
rez:=1;
for i:=1 to 25 do begin
r:=nr[i] mod k;
if r<>0 then for j:=1 to k-r do rez:=rez*p[i];
end;
close(f);
write(g,rez);
close(g);
end.