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

Формат входных данных.
Ввод: построчно
данные первоначального заполнения
картотеки по формату:
<количество комнат>
<этаж> <площадь> <адрес>
Где 0 в поле «количество комнат» - признак окончания
ввода, затем построчно заявки на обмен по формату
<количество комнат>
<этаж> <площадь>
Где 0 в поле «количество
комнат» - признак окончания ввода.
Вывод: вывод
первоначального списка в порядке возрастания количества комнат, а при равенстве
количества комнат – в порядке возрастания площади, затем через пустую строку – вывод заявки и
предлагаемых для нее вариантов обмена.
Пример входных данных:
2 3 56 Street1-15-20
3 5 76 Street2-24-56
5 5 120 Street3-56-78
2 5 44 Street1-16-57
3 5 86 Street2-98-67
2 5 45 Street3-34-19
1 2 43 Street3-8-98
2 5 56 Street2-7-56
0
2 5 44
3 5 75
0
Пример выходных данных:
1 2 43 Street3-8-98
2 5 44 Street1-16-57
2 5 45 Street3-34-19
2 3 56 Street1-15-20
2 5 56 Street2-7-56
3 5 76 Street2-24-56
3 5 86 Street2-98-67
5 5 120 Street3-56-78
2 5 44 Street1-16-57
2 5 45 Street3-34-19
3 5 76 Street2-24-56