Кружки в Маховниках
Маленький Петрик дуже захоплюється комп'ютерами і мріє навчитися програмувати. У його рідному містечку Маховники є мережа гуртків з програмування на різні теми. Коли Петрик вирішив записатися, він побачив великий список з n гуртків. Петрик прагне стати всебічно розвиненою особистістю, тому планує відвідувати всі ці гуртки. Однак, він зіткнувся з певними труднощами. По-перше, в один момент часу можна навчатися лише в одному з цих n гуртків. По-друге, деякі викладачі мають вимоги до знань учнів, які передбачають проходження курсів інших гуртків.
Петрик не дозволить таким дрібницям його зупинити. Він знає, що потрібно лише скласти правильний порядок відвідування гуртків, щоб задовольнити всі вимоги. Це завдання під силу навіть початківцю.
Перед тим як скласти план відвідування, Петрик уважно ознайомився з умовами навчання і виявив ще один важливий аспект. У всіх гуртках діє система заохочення учнів цукерками. Це означає, що після закінчення кожного гуртка учень отримує кілька коробок цукерок, причому з кожним пройденим гуртком їх кількість зростає. Кількість цукерок у коробці залежить від складності курсу. Конкретніше, за проходження i-го гуртка, якщо цей гурток у списку під номером j, учень отримує n^(i-1)
* j цукерок. Петрик вирішив поєднати корисне з приємним і тепер хоче вибрати такий порядок відвідування гуртків, щоб отримати якомога більше цукерок. Але це завдання виявилося для нього занадто складним. Допоможіть майбутньому великому програмісту знайти оптимальний порядок.
Вхідні дані
У першому рядку міститься ціле число n (1 ≤ n ≤ 100 000) - кількість гуртків у Маховниках. У наступних n рядках наведено описи вхідних вимог гуртків у порядку їх слідування в загальному списку. У i-му рядку спочатку записано ціле число k[i]
(0 ≤ k[i]
≤ n - 1) - кількість гуртків, які потрібно відвідати перед записом у i-й гурток, а потім k[i]
номерів цих гуртків. Сума k[i]
не перевищує 200 000. Гарантується, що можливо відвідати всі ці гуртки в певному порядку, не порушуючи умов.
Вихідні дані
Виведіть n номерів, розділених пробілами - порядок, у якому Петрику слід відвідувати гуртки, щоб отримати якомога більше цукерок.
Пояснення до прикладу
Відвідуючи гуртки в зазначеному порядку, Петрик отримає 6^0
* 2 + 6^1
* 1 + 6^2
* 3 + 6^3
* 5 + 6^4
* 4 + 6^5
* 6 = 2 + 6 + 108 + 1080 + 5184 + 46656 = 53036 цукерок.