고고학 연구
시간 제한2초메모리 제한512 MB
알파벳 크기를 모르는 상태에서 각 위치 이후 기호의 다음 등장 위치를 담은 표의 남은 값을 뒤섞인 채로 입력받아, 표를 만족하는 사전순 최소 원래 수열을 복원하거나 불가능함을 판정한다.
문제
Tupids 교수가 최근 조사에서 고고학 문서를 새로 발굴했다.
이 문서는 가지 기호를 개 늘어놓아 적은 글이다. 교수는 뜻을 연구하려고 각 기호에 부터 까지의 자연수를 하나씩 붙였다. 그래서 이 문서는 이상 이하의 자연수 개로 이루어진 수열로 적을 수 있다.
교수는 기호 사이의 관계를 살피려고 행이 개, 열이 개인 큰 표를 만들었다. 표의 행 열에 적은 값은 수열에서 번째보다 뒤에 처음으로 나오는 기호 의 위치이다. 그런 위치가 없으면 그 칸에는 을 적는다.
예를 들어 , 이고 수열이 이면 표의 값 몇 개는 다음과 같다.
- 행 열의 값은 이다. 번째보다 뒤에서 기호 가 처음 나오는 자리가 번째이기 때문이다.
- 행 열의 값은 이다. 번째보다 뒤에서 기호 이 처음 나오는 자리가 번째이기 때문이다.
- 행 열의 값은 이다. 번째보다 뒤에는 기호 이 나오지 않기 때문이다.
어느 날 연구실에 불이 나서 문서가 모두 타 버렸다. 표는 완전히 없어지지는 않았지만 피해를 입었다. 가 얼마였는지 적어 둔 기록이 사라졌고, 표의 일부 칸은 글씨를 알아볼 수 없게 되었으며, 조교가 잘못 보관한 탓에 각 행에 적힌 숫자의 순서까지 뒤섞였다.
교수는 남은 정보로 원래 문서를 복구하려 한다. 조건에 맞는 수열이 무한히 많을 수 있으므로 교수는 사전순으로 가장 앞서는 수열을 원한다. 다만 표의 내용이 잘못되었다면 조건에 맞는 수열이 아예 없을 수도 있다. 그때는 그 슬픈 소식을 교수에게 알려 주면 된다.
피해를 입은 표를 입력으로 받아 원래 수열을 복구하는 프로그램을 작성하라.
입력
첫째 줄에 원래 수열의 길이 ()이 주어진다.
다음 개의 줄 가운데 번째 줄에는 정수 ()와 자연수 개가 주어진다. 이 개의 수는 표의 행에서 아직 읽을 수 있는 숫자이고, 모두 이하이며 서로 다르다. 적힌 순서는 원래 표의 순서와 다를 수 있다.
모든 의 합은 을 넘지 않는다.
출력
조건을 만족하는 수열이 있으면 그 수열의 원소 개를 공백으로 구분해 한 줄에 출력한다. 조건을 만족하는 수열이 여러 개이면 사전순으로 가장 앞서는 것을 출력한다.
조건을 만족하는 수열이 없으면 "No Solution"을 출력한다.