#!/bin/python3 import sys def solve2(a): # Return the length of the longest possible sequence of moves modulo 10^9+7. if len(a) < 2: return a m = a[0] p = 0 for i in range(len(a)): if m < a[i]: m = a[i] p = i s = [m] * (len(a[:p]) + len(a[p:]) * (p + 1)) + solve(a[:p]) + solve(a[p + 1:]) return s def solve(a): b = [] for k in range(len(a)): for i in range(len(a) - k): j = i + k b.append(max(a[i:j+1])) return(b) if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = solve2(solve(a)) x = sum(result) y = 10**9 + 7 if x < y: print(x) else: print(y % x)