#include using namespace std; vector maxT(vector& A) { vector ans; ans.insert(ans.end(), A.begin(), A.end()); for (int i = 0; i < A.size()-1; ++i) { for (int j = 0; j < A.size()-i-1; ++j) { A[j] = max(A[j], A[j+1]); ans.push_back(A[j]); } } return ans; } int solve(vector A) { // Return the length of the longest possible sequence of moves modulo 10^9+7. vector st = maxT(A); vector sst = maxT(st); int C = 1000000000 + 7; int ans = 0; for (int i = 0; i < sst.size(); ++i) { // cout << sst[i]; ans += sst[i]; ans %= C; } return ans; } int main() { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } int result = solve(a); cout << result << endl; return 0; }