n = int(input()) a = list(map(int, input().split())) mod = 10 ** 9 + 7 if any(va == 0 for va in a): print(-1) if any(va > 3 for va in a): print(mod) f = [1] for i in range(3): f.append(f[-1] * (i + 1)) for i in range(len(f)): f[i] = pow(i, f[i]) ans = 1 for va in a: if ans > mod: print(mod) exit(0) else: ans *= f[va] print(mod % ans)