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

Формат входных данных.
Ввод:
Сведения о поездах построчно, по формату
<НомерПоезда>
<СтанцияНазначения> <ВремяОтправления>
0 – признак окончания ввода,
затем построчно номера поездов, о которых надо выдать информацию, 0 – окончание
ввода, затем построчно названия станций, о поездах до которых надо выдать
информацию, yyy – окончание ввода.
Вывод: Последовательно
три варианта расписания, разделенные пустой строкой и отсортированные сначала
по номеру поезда, потом по станции назначения, затем по времени отправления.
После этого ответы на запросы о поездах по номеру и по станции назначения,
разделенные пустой строкой.
Пример входных данных:
555 Ivanovka 20:10
444 Petrovka 10:15
666 Sidorovo 05:30
333 Serovo 15:20
200 Zubrovka 10:25
103 Suhovo 10:50
307 Zubrovka 16:35
700 Serovo 17:50
351 Bykovo 17:30
505 Dymovo 19:10
0
555
200
351
0
Zubrovka
Serovo
yyy
Пример выходных данных:
103 Suhovo 10:50
200 Zubrovka 10:25
307 Zubrovka 16:35
333 Serovo 15:20
351 Bykovo 17:30
444 Petrovka 10:15
505 Dymovo 19:10
555 Ivanovka 20:10
666 Sidorovo 05:30
700 Serovo 17:50
Bykovo 17:30 351
Dymovo 19:10 505
Ivanovka 20:10 555
Petrovka 10:15 444
Serovo 15:20 333
Serovo 17:50 700
Sidorovo 05:30 666
Suhovo 10:50 103
Zubrovka 10:25 200
Zubrovka 16:35 307
05:30 Sidorovo 666
10:15 Petrovka 444
10:25 Zubrovka 200
10:50 Suhovo 103
15:20 Serovo 333
16:35 Zubrovka 307
17:30 Bykovo 351
17:50 Serovo 700
19:10 Dymovo 505
20:10 Ivanovka 555
555 Ivanovka 20:10
200 Zubrovka 10:25
351 Bykovo 17:30
200 Zubrovka 10:25
307 Zubrovka 16:35
333 Serovo 15:20
700 Serovo 17:50