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

Формат входных данных.
Ввод:
Сведения о первоначальном нахождении автобусов в парке: несколько строк с
информацией о каждом автобусе (по одному на строку) по формату:
<НомерАвтобуса>
<ФИОВодителя> <НомерМаршрута>,
0 - признак конца ввода списка, затем информация
об изменении состояний списка автобусов,
несколько строк по формату:
<код операции>
<номер автобуса>
Здесь <код операции> 1
– выезд из парка, 2 – въезд в парк, 0 - признак конца ввода списка.
Вывод: два списка
автобусов в порядке номеров их маршрутов, сначала автобусы, находящиеся в
парке, затем, через пустую строку, автобусы, находящиеся на маршруте.
Пример входных данных:
7 Andreev 43
5 Zelenin 50
1 Ivanov 195
6 Kuznecov 56
2 Petrov 159
4 Makarov 65
3 Sidorov 67
0
1 4
1 2
2 4
1 6
2 2
1 7
1 3
0
Пример выходных данных:
5 Zelenin 50
4 Makarov 65
2 Petrov 159
1 Ivanov 195
7 Andreev 43
6 Kuznecov 56
3 Sidorov 67