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 math import factorial as f
def primes(n):
	sieve=[True]*n
	for i in range (3,int(n**0.5)+1,2):
		if sieve[i]:
			sieve[i*i::2*i]=[False]*((n-i*i-1)//(2*i)+1)
	return [2]+ [x for x in range(3,n,2) if sieve[i]]

p=primes(31627)
s=[0]*31623
s1={}
def factorize(n):
	for i in p:
		if n<=1:
			return 56
		while(n%i==0):
			s[p.index(i)]+=1
			n//=i
	if n>1:
		if n in s1:
			s1[n]+=1
		else:
			s1[n]=1

n=int(input())
for i in map(int,input().split()):
	factorize(i)
s=list(filter(lambda x: x!=0, s))
for i in s1.values():
	s.append(i)
ans=1
for i in s:
	ans*=f(i+n-1)//(f(n-1)*f(i))
print(ans%1000000007)

	