Let's call a subsequence of array a a non-empty array b such that it can be obtained from array a by deleting some (possibly none) elements of array a. For example, array [1,3]  is a sequence of array [1,2,3] , but [3,1]  is not.
Let's call a subsegment of array a a non-empty array b such that it can be obtained by deleting several (possibly none) of the first and last elements of array a. For example, [1,2]  is a subsegment of the array [1,2,3] , but [1,3]  is not. It is easy to see that an array of length n has exactly  
\( {n(n+1) \over 2}\)  subsegments.
Let's call an array a of length n increasing if for any 1 ≤ i≤ n a
i ≤ a
i+1.
The monotonicity of an array is the number of its increasing subsegments.
Given an array a of length n. Calculate the sum of monotonicities over all its subsequences. Since the answer can be very large, print it modulo 10
9+7.
Input
The first line contains an integer n (1 ≤ n ≤ 200000) — array length a.
The second line contains n integers (1 ≤ a
i ≤ 200000) — array elements a.
Imprint
Print a single integer — the sum of the monotonicities of all subsequences modulo 10
9+7.
Note
In the first test case, the array has 7 subsequences:
- Array [1]  has exactly one subsegment and is ascending.
 
- The array [2]   has exactly one subsegment and is increasing.
 
- The array [3]  has exactly one subsegment and is increasing.
 
- The array [1,2]  has three subsegments ([1], [2], [1,2] ) and they are all increasing.
 
- The array [1,3]  has three subsegments ([1], [3], [1,3] ) and they are all increasing.
 
- The array [3,2]   has three subsegments ([3], [2], [3, 2] ), but only two of them ([3]  and [2] ) are ascending. 
 
- The array [1,3,2]  has six subsegments ([1], [3], [2], [1,3], [3,2], [1,3,2] ) and four of them ([1], [3], [2], [1,3] ) are increasing.
 
In the second test case, all increasing subsegments of all subsequences have length 1.
Examples
| # | 
Input | 
Output | 
| 1 | 
3 
1 3 2
 | 15 | 
| 2 | 
3 
6 6 6
 | 12 |