p03801 AtCoder Regular Contest 069 - Frequency
Snuke loves constructing integer sequences.

There are N piles of stones, numbered 1 through N. The pile numbered i consists of a_i stones.

Snuke will construct an integer sequence s of length Σa_i, as follows:

1. Among the piles with the largest number of stones remaining, let x be the index of the pile with the smallest index. Append x to the end of s.
2. Select a pile with one or more stones remaining, and remove a stone from that pile.
3. If there is a pile with one or more stones remaining, go back to step 1. Otherwise, terminate the process.



We are interested in the lexicographically smallest sequence that can be constructed. For each of the integers 1,2,3,...,N, how many times does it occur in the lexicographically smallest sequence?

Constraints

* 1 ≤ N ≤ 10^{5}
* 1 ≤ a_i ≤ 10^{9}

Input

The input is given from Standard Input in the following format:


N
a_1 a_2 ... a_{N}


Output

Print N lines. The i-th line should contain the number of the occurrences of the integer i in the lexicographically smallest sequence that can be constructed.

Examples

Input

2
1 2


Output

2
1


Input

10
1 2 1 3 2 4 2 5 8 1


Output

10
7
0
4
0
3
0
2
3
0
```python
N = int(input())
As = list(map(int, input().split()))

sorted_iAs = sorted(map(tuple, enumerate(As)), key = lambda t: (t[1], t[0]), reverse = True)

#if As = 1 2 1 3 2 4 2 5 8 1
#then sorted_iAs is:
#   i | 8 7 5 3 6 4 1 9 2 0
#   A | 8 5 4 3 2 2 2 1 1 1
#I'll look at:
#       x x x x     x     x
#where the next A decreases (or doesn't exist).

ans = [0] * N
youngest_index = 10 ** 9
for index, (original_index, A) in enumerate(sorted_iAs):
    youngest_index = min(original_index, youngest_index)
    if index == N - 1:
        ans[youngest_index] += A * (index + 1)
    elif sorted_iAs[index + 1][1] < A:
        next_A = sorted_iAs[index + 1][1]
        ans[youngest_index] += (A - next_A) * (index + 1)

print(*ans, sep = '\n')
```