#!/bin/python3 import sys def max_transform(A): B = [] for k in range(len(A)): for i in range(len(A) - k): j = i + k # print('i, j', i, ',', j) B.append(max(A[i:j+1])) return B def solve(A): # Return the sum of S(S(A)) modulo 10^9+7. B = max_transform(A) B = max_transform(B) sum_val = 0 for b in B: sum_val = (sum_val + b) % 1000000007 ret_val = sum_val return ret_val if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = solve(a) print(result)