N,*A=(map(int,open(0).read().split())) m=1000000007 l=0 a=1 b=1 x=1 for r in range(N): a*=A[r] b*=pow(A[r],r-l+1,m) b%=m while a>=1000000000: b*=pow(a,-1,m) a//= A[l] l+=1 x*=b x%=m print(x)