MOD = 10 ** 9 + 7 N = int(input()) A = list(map(int, input().split())) for a in A: if a % MOD == 0: print(0) exit() ans = 1 cnt = 0 tmp2 = 1 tmp = 1 for i in range(N): tmp *= A[i] while i >= cnt and tmp >= 10 ** 9: tmp2 *= pow(tmp // A[i], -1, MOD) tmp2 %= MOD tmp //= A[cnt] cnt += 1 tmp2 *= pow(A[i], i + 1 - cnt, MOD) tmp2 %= MOD ans *= tmp2 ans %= MOD print(ans)