MOD = 10**9 + 7 def main(): import sys input = sys.stdin.read data = input().split() N = int(data[0]) A = list(map(int, data[1:N+1])) A_sorted = sorted(A) min_A = A_sorted[0] count_min = A_sorted.count(min_A) if count_min >= 2: min_T = (2 * min_A) * pow(min_A, min_A, MOD) min_T %= MOD else: s_min = A_sorted[1] min_T = (min_A + s_min) * pow(min_A, s_min, MOD) min_T %= MOD prefix_sum = [0] * (N + 1) for i in range(N): prefix_sum[i+1] = prefix_sum[i] + A[i] total_sum = prefix_sum[N] P2 = 1 for i in range(N): S_i = total_sum - prefix_sum[i+1] exponent = S_i % (MOD-1) term = pow(A[i], exponent, MOD) P2 = (P2 * term) % MOD P1 = 1 for i in range(N): for j in range(i + 1, N): term = (A[i] + A[j]) % MOD P1 = (P1 * term) % MOD P = (P1 * P2) % MOD inv_min_T = pow(min_T, MOD-2, MOD) M = (P * inv_min_T) % MOD print(M) if __name__ == "__main__": main()