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>).
MOD = 10**9+7
def ncr(n, r, p):
    num = den = 1
    for i in range(r):
        num = (num * (n - i)) % p
        den = (den * (i + 1)) % p
    return (num * pow(den,p - 2, p)) % p
def primes(n):
    prime = [True for i in range(n + 1)]
    p = 2
    while (p * p <= n):
 
        if (prime[p] == True):
 
            for i in range(p * p, n + 1, p):
                prime[i] = False
        p += 1
 
    l = []
    for p in range(2, n):
        if prime[p]:
            l.append(p)
    return l
p = primes(31623)
s = [0]*len(p)
def factorize(n):
  for i in p:
    if n<=1:
      return 56
    while n%i==0:
      s[p.index(i)]+=1
      n//=i
n1 = int(input())
for i in map(int,input().split()):
  factorize(i)
s = list(filter(lambda a: a != 0, s))
ans = 1
for i in s:
  ans*=ncr(n1-1+i,n1-1,MOD)
  ans%=MOD
print(int(ans)%MOD)