using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Numerics; class Solution { static BigInteger Solve(List list) { var l1 = MaxTransform(list); var l2 = MaxTransform(l1); var result = l2.Aggregate(BigInteger.Zero, BigInteger.Add); return BigInteger.Remainder(result, (int) Math.Pow(10, 9) + 7); } static List MaxTransform(List list) { var result = new List(); for (var k = 0; k < list.Count; k++) { for (var i = 0; i < list.Count - k; i++) { var j = i + k; BigInteger max = BigInteger.Zero; for (var a = i; a <= j; a++) { if (list[a] > max) { max = list[a]; } } result.Add(max); } } return result; } static void Main(String[] args) { var n = Convert.ToInt32(Console.ReadLine()); var aTemp = Console.ReadLine().Split(' '); var a = Array.ConvertAll(aTemp, BigInteger.Parse).ToList(); var result = Solve(a); Console.WriteLine(result); } }