using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static int solve(int[] A, bool resp = false) { List r = new List(); for (int k = 0; k < A.Length; k++) { for (int i = 0; i < A.Length - k; i++) { var j = i + k + 1; r.Add(A.Skip(i).Take(j-i).Max()); } } if (resp) return Sum(r); return solve(r.ToArray(), true); } static int Sum(IEnumerable elem) { int sum = 0; foreach (var i in elem) { sum = (i + sum) % 1000000007; } return sum; } 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); } }