def main(n,a): mod=10**9+7 if max(a)>=4:return mod if min(a)==0:return -1 ary=[1,1] for i in range(2,max(a)+1): ary.append(ary[-1]*i) ret=1 for x in a: ret*=pow(x,ary[x]) if ret>mod:return mod return mod%ret if __name__=='__main__': n=int(input()) a=list(map(int,input().split())) print(main(n,a))