def modPow(a,n,mod):#繰り返し二乗法 a**n % mod if n==0: return 1 if n==1: return a%mod if n & 1: return (a*modPow(a,n-1,mod)) % mod t = modPow(a,n>>1,mod) return (t*t)%mod N = int(input()) lsA = list(map(int,input().split())) mod = 10**9+7 l = 1 ans = 0 for i in range(N-1): l *= lsA[i] l %= mod ans += l*2*modPow(3,N-2-i,mod) ans %= mod l *= lsA[N-1] ans += l ans %= mod print(ans)