'''
Условие
Однажды, разбирая старые книги на чердаке, школьник Вася нашёл англо-латинский
 словарь. Английский он к тому времени знал в совершенстве, и его мечтой было 
 изучить латынь. Поэтому попавшийся словарь был как раз кстати.

К сожалению, для полноценного изучения языка недостаточно только одного словаря: 
кроме англо-латинского необходим латинско-английский. За неимением лучшего он 
решил сделать второй словарь из первого.

Как известно, словарь состоит из переводимых слов, к каждому из которых 
приводится несколько слов-переводов. Для каждого латинского слова, 
встречающегося где-либо в словаре, Вася предлагает найти все его переводы 
(то есть все английские слова, для которых наше латинское встречалось в его 
списке переводов), и считать их и только их переводами этого латинского слова.

Помогите Васе выполнить работу по созданию латинско-английского словаря из 
англо-латинского.

В первой строке содержится единственное целое число N — количество английских 
слов в словаре. Далее следует N описаний. Каждое описание содержится в отдельной
 строке, в которой записано сначала английское слово, затем отделённый пробелами
  дефис, затем разделённые запятыми с пробелами переводы этого английского слова
   на латинский. Все слова состоят только из маленьких латинских букв. Переводы
    отсортированы в лексикографическом порядке. Порядок следования английских
     слов в словаре также лексикографический.

Выведите соответствующий данному латинско-английский словарь, в точности 
соблюдая формат входных данных. В частности, первым должен идти перевод 
лексикографически минимального латинского слова, далее — второго в этом 
порядке и т.д. Внутри перевода английские слова должны быть также отсортированы
 лексикографически.
''' 
eng_lat = {}
lat_eng = {}
for i in range(int(input())):
    eng, *lat = input().split(' - ',maxsplit = 1)
    eng_lat[eng] = lat[0].split(', ')

for key in eng_lat.keys():
    for val in eng_lat[key]:
        if val in lat_eng.keys():
            lat_eng[val]=lat_eng.get(val, 0) + ', '+key
        else:
            lat_eng[val]=' - ' + key

print(len(lat_eng))
for key in sorted(lat_eng):
    print(key, lat_eng[key])

'''
from collections import defaultdict

latin_to_english = defaultdict(list)
for i in range(int(input())):
    english_word, latin_translations_chunk = input().split(' - ')
    latin_translations = latin_translations_chunk.split(', ')
    for latin_word in latin_translations:
        latin_to_english[latin_word].append(english_word)
    
print(len(latin_to_english))
for latin_word, english_translations in sorted(latin_to_english.items()):
    print(latin_word + ' - ' + ', '.join(english_translations))

'''