M=10**9+7 N=gets.to_i A=gets.split.map(&:to_i) A.sort! m=1 if A[0]==0 puts -1 elsif A[-1]>3 puts M else A.each{|a| m*= a ** (1..a).inject(&:*) break if m>M } puts M%m end