N = gets.to_i A = gets.split.map(&:to_i) MOD = 10 ** 9 + 7 ans = 0 v = 1 0.upto(N - 2) do |k| a = A[k] v *= a v %= MOD ans += v * 2 * 3.pow(N - 2 - k, MOD) ans %= MOD end v *= A.last v %= MOD ans += v ans %= MOD puts ans