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:
 - 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.
 - Select a pile with one or more stones remaining, and remove a stone from that pile.
 - 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.

-----Sample Input-----
2
1 2

-----Sample Output-----
2
1

The lexicographically smallest sequence is constructed as follows:
 - Since the pile with the largest number of stones remaining is pile 2, append 2 to the end of s. Then, remove a stone from pile 2.
 - Since the piles with the largest number of stones remaining are pile 1 and 2, append 1 to the end of s (we take the smallest index). Then, remove a stone from pile 2.
 - Since the pile with the largest number of stones remaining is pile 1, append 1 to the end of s. Then, remove a stone from pile 1.
The resulting sequence is (2,1,1). In this sequence, 1 occurs twice, and 2 occurs once.

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = 'import sys\ninput = sys.stdin.readline\n\ndef I(): return int(input())\ndef MI(): return list(map(int, input().split()))\ndef LI(): return list(map(int, input().split()))\n\n"""\n可能なら左から取る\n左側にある数字のどれかに追い付いたら，そこはもう選ばれない．\n選ぶ数字をどんどん左にシフトしていく．\n\n左に移動するとき，左側にある最大値とその位置を取りたい:seg木でいける（A[i],-i）を持って最大値を取れば位置もわかる．\n\n数字を使う回数をカウントするためには，左側にある最大値は必要．あと，右側にある自分と同じ数の個数，も必要．\n個数だけでよく，位置情報はいらないので左にシフトしていくときにddで個数だけ持っておくか\n右側の使い方が変だな，326154みたいな並びだと，6を3に下げるときに，右側にある45をどっちもを補足する必要あり\n\nうわ，例2の答えのとこ見間違えてた，普通に計算した通りの転倒数ジャン．\ni番目を見ている状態\n次のものが自分より左側に出てくる:差分*i以上の位置にある個数\n次のものが自分より右側に出てくる:むし\n\n同じ数字が出てくるとき：次の数字は左側としたいが，右に出てくる分の個数も加味したい\n+1ではなく，次の数との差分\nとか思ってたけど，結局足すのは次に左の数が出てきた時なのでいらない\n\n結局差分が大事．次との差分を見るだけならば，個数が同じグループのことをあまり考えなくても良い\n大きい順に見ていくだけなので，個数=見た個数で良い\n\n\n"""\ndef main():\n    N=I()\n    A=LI()\n    for i in range(N):\n        A[i]=(A[i],i)\n    \n    A.sort(reverse=True)\n    A.append((0,0))\n    ans=[0]*N\n    \n    now=A[0][1]#どこに追加するか\n    for i in range(N):\n        ans[now]+=(i+1)*(A[i][0] - A[i+1][0])\n        now=min(now,A[i+1][1])\n    \n    for i in range(N):\n        print((ans[i]))\n    \n    \n\nmain()\n'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 14451