Ланцюг#8556

Ланцюг

3 секунди
128 мегабайтів
Легка

Дано послідовність із цілих чисел a_1, a_2, ..., a_n. Для кожного елемента a_k~(k = 1, 2, ..., n) потрібно знайти перший елемент праворуч від a_k, який є більшим за нього (якщо такий існує). Позначимо цей елемент як a_{k_1}. Потім повторюємо цей процес для елемента a_{k_1}, позначаючи наступний знайдений елемент як a_{k_2}, і так далі, поки не закінчиться послідовність. Таким чином утворюється підпослідовність a_{k_1}, a_{k_2}, ..., яку ми назвемо ланцюгом, що починається з індексу .

Напишіть програму, яка для кожного індексу виводить довжину відповідного ланцюга, що починається з цього індексу.

Вхідні дані

У першому рядку задано натуральне число n~(0 < n \le 500000). У другому рядку наведено елементи послідовності a_1, a_2, ..., a_n~(0 < a_i < 10^6).

Вихідні дані

В одному рядку виведіть послідовність довжин ланцюгів, що відповідають кожному елементу вхідних даних.

Приклади

Приклад 1

Loading
Loading