object Solution { def maxTransform(input:IndexedSeq[Int]):IndexedSeq[Int] = { for {width <- 1 to input.length startdex <- 0 to input.length - width }yield input.slice(startdex, startdex + width).max } def solve(a: Array[Int]): Int = { // Return the sum of S(S(A)) modulo 10^9+7. maxTransform(maxTransform(a)).sum % 1000000007 } def main(args: Array[String]) { val sc = new java.util.Scanner (System.in); var n = sc.nextInt(); var a = new Array[Int](n); for(a_i <- 0 to n-1) { a(a_i) = sc.nextInt(); } val result = solve(a); println(result) } }