from collections import defaultdict import sys readline=sys.stdin.readline def Factorize(N): assert N>=1 factors=defaultdict(int) for p in range(2,N): if p**2>N: break while N%p==0: factors[p]+=1 N//=p if N!=1: factors[N]+=1 return factors N,K=map(int,readline().split()) A=list(map(int,readline().split())) dct=defaultdict(list) for a in A: for p,e in Factorize(a).items(): dct[p].append(e) ans=1 mod=10**9+7 for p,lst in dct.items(): lst.sort(reverse=True) ans*=pow(p,sum(lst[:K]),mod) ans%=mod print(ans)