d['~~'][40];*q,x,n,i,j,k,t,m=1e9+7;long p(a,n){return n?a*p(a,n-1)%m:1;}f(s,x){for(q=d;*(q+=40)&&*q-s;);q[x]++;*q=s;}main(s){for(scanf("%*d%d",&n);~scanf("%d",&i);f(i,1))for(k=2;i%k<1?i/=k,++t:(t&&f(k,t),t=0,i>k*k++););for(q=d;x=*(q+=40)?:!printf("%d",s);s=s*p(x,k)%m)for(k=t=0,j=30;t