You are given an integer *m* as a product of integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ... *a*<sub class="lower-index">*n*</sub> <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/cf060eec22f7a6ddd13992efe2ebf6d08fde945a.png" style="max-width: 100.0%;max-height: 100.0%;"/>. Your task is to find the number of distinct decompositions of number *m* into the product of *n* ordered positive integers.

Decomposition into *n* products, given in the input, must also be considered in the answer. As the answer can be very large, print it modulo 1000000007 (10<sup class="upper-index">9</sup> + 7).
The first line contains positive integer *n* (1 ≤ *n* ≤ 500). The second line contains space-separated integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
import math
import sys
input=sys.stdin.readline
 
p=(10**9)+7
pri=p
fac=[1 for i in range((10**6)+1)]
for i in range(2,len(fac)):
    fac[i]=(fac[i-1]*(i%pri))%pri
def modi(x):
    return (pow(x,p-2,p))%p;
    
def ncr(n,r):
    x=(fac[n]*((modi(fac[r])%p)*(modi(fac[n-r])%p))%p)%p
    return x;

def prime(x):
    ans=[]
    while(x%2==0):
        x=x//2
        ans.append(2)
    for i in range(3,int(math.sqrt(x))+1,2):
        while(x%i==0):
            ans.append(i)
            x=x//i
    if(x>2):
        ans.append(x)

    return ans;



n=int(input())
x=1
z=list(map(int,input().split()))
for i in range(len(z)):
    x=x*z[i]
ans=prime(x)
cn=[]
count=1
for i in range(1,len(ans)):
    if(ans[i]==ans[i-1]):
        count+=1
    else:
        cn.append(count)
        count=1
cn.append(count)
al=1

for i in range(len(cn)):
    al=al*ncr(n+cn[i]-1,n-1)
    al%=pri
print(al)
    
    
