Динамические структуры данных

Формат входных данных.
Ввод:
Компоненты текста помощи следующей структуры: сначала слово, затем в следующих
строках – номер строки файла помощи и сам текст строки
по формату:
<Номер строки> <ТекстСтроки >,
0 - признак конца ввода списка, затем список
слов, по одному на строку, страницы с упоминаниями
которых надо вывести, 0 –признак конца ввода списка.
Вывод: Сначала
содержание всего файла помощи в алфавитном порядке слов, затем, через пустую
строку, вывод сведений о запрошенных
словах в порядке их запросов.
Пример входных данных:
Page
1 String1Page
2 String2Page
3 String3Page
Book
1 String1Book
2 String2Book
Lake
1 String1Lake
2 String2Lake
3 String3Lake
4 String4Lake
5 String5Lake
Cake
1 String1Cake
Moon
1 String1Moon
Sun
1 String1Sun
2 String2Sun
Earth
1 String1Earth
2 String2Earth
Pen
1 String1Pen
Yard
1 String1Yard
Garden
1 String1Garden
2 String2Garden
3 String3Garden
4 String4Garden
0
Lake
Book
0
Пример выходных данных:
Book
String1Book
String2Book
Cake
String1Cake
Earth
String1Earth
String2Earth
Garden
String1Garden
String2Garden
String3Garden
String4Garden
Lake
String1Lake
String2Lake
String3Lake
String4Lake
String5Lake
Moon
String1Moon
Page
String1Page
String2Page
String3Page
Pen
String1Pen
Sun
String1Sun
String2Sun
Yard
String1Yard
Lake
String1Lake
String2Lake
String3Lake
String4Lake
String5Lake
Book
String1Book
String2Book