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; ArrayList B = new ArrayList(); for(int i=0; i < n; i++){ B.add(A[i]); } for(int k=0; k < n; k++){ for(int i=0; i <= n-k-1; i++){ int[] t = new int[k]; System.arraycopy(A,i,t,0,k); Arrays.sort(t); if (k > 0) B.add(t[k-1]); } } Integer[] A11 = new Integer[B.size()]; A11 = (Integer[]) B.toArray(new Integer[B.size()]); int[] A1 = new int[A11.length]; for(int i1=0; i1 < A11.length; i1++){ A1[i1] = A11[i1].intValue(); } for(int k=0; k < A1.length; k++){ for(int i=0; i <= A1.length-k-1; i++){ int[] t1 = new int[k]; System.arraycopy(A1,i,t1,0,k); for(int j =0; j < k; j++) // System.out.println("t1 = [" + j + "]" + t1[j]); Arrays.sort(t1); if (k > 0) B.add(t1[k-1]); } } //System.out.println("B = " + B); Integer[] A2 = new Integer[B.size()]; A2 = (Integer[]) B.toArray(new Integer[B.size()]); long sum1 = 0; for(int i=0; i < A2.length; i++){ sum1 = sum1 + A2[i]; } int res = (int) sum1%(1000000007); return res; } 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(); } }