텍스트 모드 운영체제용 텍스트 편집기를 만들고 있는데, 가장 어려운 부분은 문서 색인(index) 기능이다. 문서의 색인이란 문서에 나오는 모든 단어를 사전순으로 나열하고, 각 단어가 등장하는 쪽 번호를 함께 적은 목록이다.
문서는 여러 문단으로 이루어진다. 각 문단은 한 줄 이상으로 이루어지며, 이웃한 두 문단 사이에는 빈 줄이 정확히 하나 있다.
먼저 문서를 쪽 나누기(pagination) 한다. 한 쪽에는 최대 n개의 줄이 들어간다. 줄을 위에서부터 차례로 한 쪽에 채워 n개를 채운 뒤, 다음 보정 규칙을 적용한다.
보정 규칙을 적용한 뒤 다음 쪽을 만들고, 문서 전체를 다 나눌 때까지 이 과정을 반복한다.
단어는 영어 알파벳이 연속으로 이어진 최대 구간이며, 대소문자는 구분하지 않는다. 색인은 각 단어마다 그 단어가 등장하는 쪽 번호를 오름차순으로, 쉼표로 구분하여 적는다. 한 단어가 세 쪽 이상 연속으로 등장하면 그 구간을 첫 쪽 번호와 마지막 쪽 번호를 붙임표(-)로 이어 적는다. 예: 3-5,7-10,12,13,15.
첫째 줄에 정수 n (4≤n≤100)이 주어진다. 그다음부터는 색인을 만들 문서가 주어지며, 입력 전체의 크기는 20,000바이트를 넘지 않는다.
완전히 비어 있는 줄만 빈 줄로 본다. 어떤 줄에도 앞뒤 공백이 없고, 문서에 빈 줄이 연속으로 두 개 나오지 않으며, 문서의 첫 줄은 빈 줄이 아니고, 각 줄의 길이는 200자를 넘지 않는다.
문서에 등장하는 모든 단어를 사전순으로 한 줄에 하나씩 출력한다. 각 단어 뒤에는 공백을 하나 출력하고, 이어서 그 단어가 등장하는 쪽 번호 목록을 위에서 설명한 형식으로 출력한다. 모든 단어는 대문자로 출력한다.