N = int(input()) A = list(map(int,input().split())) MOD = 10**9+7 ans = 1 if min(A) < 0: print(-1) exit() elif max(A) > 3: print(MOD) exit() for i in range(N): ak = 1 for j in range(1,A[i]+1): ak *= j ans *= (A[i]**ak) print(MOD%ans)