from collections import defaultdict mp=defaultdict(list) def factorize(x): for i in range(2,40000): ret=0 while x%i==0: ret+=1 x//=i if ret: mp[i].append(ret) if x>1: mp[x].append(1) N,K=map(int,input().split()) A=list(map(int,input().split())) for i in range(N): factorize(A[i]) mod=1000000007 ans=1 for k,v in mp.items(): list.sort(v) list.reverse(v) ret=0 for i in range(min(len(v),K)): ret+=v[i] ans=ans*pow(int(k),ret,mod)%mod print(ans)