from collections import * from itertools import * from functools import * from heapq import * import sys,math N = int(input()) A = list(map(int,input().split())) mod = 10**9 + 7 tmp = 1 X = [0,1,4,729] if 0 in A: print(-1) exit() for a in A: if a>=4: print(mod) exit() else: tmp *= X[a] if tmp > mod: print(mod) exit() print(mod%tmp)