#!/bin/python3 import sys def solve_copy(B): C = [] for k in range(0, len(B)): for i in range(0, len(B) - k): j = i + k C.append(max(B[i:j+1])) return C def solve(A): # Return the length of the longest possible sequence of moves modulo 10^9+7. B = [] for k in range(0, len(A)): for i in range(0, len(A)-k): j = i + k B.append(max(A[i:j+1])) #print("B=",B) L=solve_copy(B) #print("L=",L) s=sum(L)%(10000000007) #print("sum_s=",s) return s if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = solve(a) print(result)