import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int solve(int[] A) { // Return the sum of S(S(A)) modulo 10^9+7. int n = A.length; int n_1 = n*(n+1)/2; int n_2 = n_1*(n_1+1)/2; int[] Z = new int[n_2]; Z = transform(transform(A)); int sum = 0; for (int i = 0; i < Z.length; i++){ sum += Z[i]; } double result = sum % (7+Math.pow(10,9)); return (int) result; } static int[] transform(int[] A){ int[] Z = new int[(A.length+1)*A.length/2]; for (int index = 0; index < A.length; index++){ Z[index] = A[index]; } int counter = A.length; for (int k = 1; k < A.length; k++){ for (int i = 0; i < A.length - k; i++){ int j = i + k; int[] B = new int[j-i+1]; System.arraycopy(A, i, B, 0, j-i+1); int newNumber = Arrays.stream(B).max().getAsInt(); Z[counter] = newNumber; counter++; } } return Z; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] A = new int[n]; for(int a_i = 0; a_i < n; a_i++){ A[a_i] = in.nextInt(); } int result = solve(A); System.out.println(result); in.close(); } }