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

Формат входных данных.
Ввод:
Первоначальный англо-русский словарь, по слову в строке по формату:
<английское слово>
<перевод>
YYY – признак окончания ввода,
Затем строки обращения к словарю,
по одному слову в строке по формату:
<английское слово>
YYY – признак
окончания ввода.
Вывод:
Сначала первоначальный словарь в алфавитном порядке английских слов, затем
через пустую строку новый словарь в порядке убывания счетчика обращений по формату:
<число обращений>
<английское слово> <перевод>
YYY – признак окончания ввода,
Пример входных данных:
lamp lampa
book kniga
car mashina
cake tort
pen ruchka
pencil karandash
spoon lozhka
table stol
hand ruka
yyy
hand
table
hand
spoon
table
hand
spoon
table
hand
book
cake
book
car
book
car
book
car
pen
lamp
pen
yyy
Пример выходных данных:
book kniga
cake tort
car mashina
hand ruka
lamp lampa
pen ruchka
pencil karandash
spoon lozhka
table stol
4 book kniga
4 hand ruka
3 car mashina
3 table stol
2 pen ruchka
2 spoon lozhka
1 cake tort
1 lamp lampa
0 pencil karandash