#include #define rep(i, l, r) for (int i = (l); i < (r); i++) using namespace std; typedef long long ll; int main() { int N; cin >> N; vector A(N), P(N + 1, 1), T(N + 1, 1); rep(i, 0, N) cin >> A[i]; ll MOD = 1000000007, ans = 0; rep(i, 0, N) P[i + 1] = P[i] * A[i] % MOD; rep(i, 0, N) T[i + 1] = T[i] * 3 % MOD; rep(i, 0, N - 1) ans = (ans + P[i + 1] * 2 % MOD * T[N - 2 - i] % MOD) % MOD; ans = (ans + P[N]) % MOD; cout << ans << endl; //rep(i, 0, N) cout << P[i + 1] << " "; cout << endl; }