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>).
from collections import defaultdict
m = 1000000007

f = [0] * 15001
f[0] = 1
for i in range(1, 15001): f[i] = (f[i - 1] * i) % m

def c(n, k): return (f[n] * pow((f[k] * f[n - k]) % m, m - 2, m)) % m
def prime(n):
    m = int(n ** 0.5) + 1
    t = [1] * (n + 1)
    for i in range(3, m):
        if t[i]: t[i * i :: 2 * i] = [0] * ((n - i * i) // (2 * i) + 1)
    return [2] + [i for i in range(3, n + 1, 2) if t[i]]

p = prime(31650)
s = defaultdict(int)

def g(n):
    for j in p:
        while n % j == 0:
            n //= j
            s[j] += 1
        if j * j > n:
            s[n] += 1
            break

n = int(input()) - 1
a = list(map(int, input().split()))

for i in a: g(i)
if 1 in s: s.pop(1)

d = 1
for k in s.values(): d = (d * c(k + n, n)) % m
print(d)
