#!/bin/python3 import sys def max_val(A): B = [] sum_val = 0 for k in range(0,len(A)): #print("K loop: %d" % k) for i in range(0, len(A)-k): #print("I loop: %d" %i) j = i + k #print("J: %d, K: %d, i: %d" % (j,k,i)) #if i == j: # B.append(A[i]) #else: my_max_val = -1 for c in range(i,j+1): if A[c] > my_max_val: my_max_val = A[c] B.append(my_max_val) sum_val += my_max_val #print(B) return B, sum_val def solve(A): mod_val = (10**9) + 7 new_a, _ = max_val(A) _, sum_val = max_val(new_a) return sum_val % mod_val # Return the length of the longest possible sequence of moves modulo 10^9+7. if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = solve(a) print(result)