고고학 연구

알파벳 크기를 모르는 상태에서 각 위치 이후 기호의 다음 등장 위치를 담은 표의 남은 값을 뒤섞인 채로 입력받아, 표를 만족하는 사전순 최소 원래 수열을 복원하거나 불가능함을 판정한다.

어려움9그리디그래프구현정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Tupids 교수가 최근 조사에서 고고학 문서를 새로 발굴했다.

이 문서는 cc가지 기호를 nn개 늘어놓아 적은 글이다. 교수는 뜻을 연구하려고 각 기호에 11부터 cc까지의 자연수를 하나씩 붙였다. 그래서 이 문서는 11 이상 cc 이하의 자연수 nn개로 이루어진 수열로 적을 수 있다.

교수는 기호 사이의 관계를 살피려고 행이 nn개, 열이 cc개인 큰 표를 만들었다. 표의 iijj열에 적은 값은 수열에서 ii번째보다 뒤에 처음으로 나오는 기호 jj의 위치이다. 그런 위치가 없으면 그 칸에는 00을 적는다.

예를 들어 n=6n = 6, c=3c = 3이고 수열이 [1,3,2,2,1,3][1, 3, 2, 2, 1, 3]이면 표의 값 몇 개는 다음과 같다.

  • 3322열의 값은 44이다. 33번째보다 뒤에서 기호 22가 처음 나오는 자리가 44번째이기 때문이다.
  • 2233열의 값은 66이다. 22번째보다 뒤에서 기호 33이 처음 나오는 자리가 66번째이기 때문이다.
  • 5511열의 값은 00이다. 55번째보다 뒤에는 기호 11이 나오지 않기 때문이다.

어느 날 연구실에 불이 나서 문서가 모두 타 버렸다. 표는 완전히 없어지지는 않았지만 피해를 입었다. cc가 얼마였는지 적어 둔 기록이 사라졌고, 표의 일부 칸은 글씨를 알아볼 수 없게 되었으며, 조교가 잘못 보관한 탓에 각 행에 적힌 숫자의 순서까지 뒤섞였다.

교수는 남은 정보로 원래 문서를 복구하려 한다. 조건에 맞는 수열이 무한히 많을 수 있으므로 교수는 사전순으로 가장 앞서는 수열을 원한다. 다만 표의 내용이 잘못되었다면 조건에 맞는 수열이 아예 없을 수도 있다. 그때는 그 슬픈 소식을 교수에게 알려 주면 된다.

피해를 입은 표를 입력으로 받아 원래 수열을 복구하는 프로그램을 작성하라.

입력

첫째 줄에 원래 수열의 길이 nn (1n3000001 \le n \le 300000)이 주어진다.

다음 nn개의 줄 가운데 ii번째 줄에는 정수 cic_i (0cini0 \le c_i \le n - i)와 자연수 cic_i개가 주어진다. 이 cic_i개의 수는 표의 ii행에서 아직 읽을 수 있는 숫자이고, 모두 nn 이하이며 서로 다르다. 적힌 순서는 원래 표의 순서와 다를 수 있다.

모든 cic_i의 합은 300000300000을 넘지 않는다.

출력

조건을 만족하는 수열이 있으면 그 수열의 원소 nn개를 공백으로 구분해 한 줄에 출력한다. 조건을 만족하는 수열이 여러 개이면 사전순으로 가장 앞서는 것을 출력한다.

조건을 만족하는 수열이 없으면 "No Solution"을 출력한다.