using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static int solve(int[] A) { // Return the length of the longest possible sequence of moves modulo 10^9+7. var sA = S(A); var ssA = S(sA); return getSum(ssA); } static int getSum(int[] A){ var mod = 1000000007; var sumMod = 0; foreach(var i in A){ sumMod += i; sumMod = sumMod % mod; } return sumMod; } static int[] S(int[] A){ var len = A.Length; var b = new List(); for(var k = 0; k < len; k++){ for(var i = 0; i < len-k; i++){ b.Add(A.Skip(i).Take(k+1).Max()); } } return b.ToArray(); } static void Main(String[] args) { int n = Convert.ToInt32(Console.ReadLine()); string[] a_temp = Console.ReadLine().Split(' '); int[] a = Array.ConvertAll(a_temp,Int32.Parse); int result = solve(a); Console.WriteLine(result); } }