#include using namespace std; int solve(vector A) { // Return the sum of S(S(A)) modulo 10^9+7. int mod = 1000000007; int ans = 0; vector B; vector C; for(int k = 0; k <= A.size() - 1; k++) { for(int i = 0; i <= A.size() - k - 1; i++) { int j = i + k; int max = *max_element(A.begin() + i, A.begin() + j + 1); B.push_back(max); } } for(int k = 0; k <= B.size() - 1; k++) { for(int i = 0; i <= B.size() - k - 1; i++) { int j = i + k; int max = *max_element(B.begin() + i, B.begin() + j + 1); C.push_back(max); } } for(int i = 0; i <= C.size() - 1; i++) ans = (ans + C[i]) % mod; 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; }