Пітер є старшим менеджером компанії Agile Change Management (ACM) Inc., де кожен працівник належить до однієї або кількох робочих груп. Оскільки ACM є гнучкою, робочі групи часто реорганізовуються, і їхній склад постійно змінюється, тому управління членством є для нього постійним викликом.
Пітер оновлює інформацію про членство щоразу, коли відбуваються зміни. Наприклад, наступний рядок, написаний ним, означає, що carol і alice є членами Дизайнерської групи:
design:carol,alice.
Назва, що передує двокрапці, є назвою групи, а імена, що йдуть після неї, вказують на її членів.
Менша робоча група може бути включена в більшу. Отже, назва групи може з'явитися як член іншої групи, наприклад, наступним чином:
development:alice,bob,design,eve.
Розгорнувши вищезгаданий дизайн, отримуємо наступну специфікацію членства, яка еквівалентна оригінальній:
development:alice,bob,carol,alice,eve.
У цьому випадку, однак, alice зустрічається двічі. Після видалення одного з дублікатів ми маємо наступну більш стислу специфікацію:
development:alice,bob,carol,eve.
Ваше завдання в цій задачі - написати програму, яка, отримавши специфікації груп, визначає членів групи.
Зверніть увагу, що специфікації Пітера можуть включати глибоко вкладені групи. Наприклад, у наступному випадку група one містить одного члена dave:
one:another.another:yetanother.yetanother:dave.
Вхідні дані є послідовністю наборів даних, кожен з яких має наступний формат:
group_1:member_{1,1},...,member_{1,m_1}. ... group_i:member_{i,1},...,member_{i,m_i}. ... group_n:member_{n,1},...,member_{n,m_n}.
Перша строка містить , що представляє кількість груп і є додатним цілим числом, не більше . Кожна з наступних строк містить інформацію про членство групи: group_i (1 \le i \le n) є назвою -ї робочої групи, за якою слідує двокрапка (), а потім список її m_i членів, які розділені комою () і завершуються крапкою ().
Ці назви груп є взаємно різними. Кожне m_i (1 \le i \le n) знаходиться в межах від до , включно. Член є назвою іншої групи, якщо це одна з group_1, group_2, ..., або group_n. В іншому випадку це ім'я працівника.
Немає циклічних (або рекурсивних) визначень груп. Ви можете припустити, що m_i імена членів групи є взаємно різними.
Кожна назва групи або працівника є непорожнім рядком символів довжиною від до , включно, і складається з малих літер.
Кінець введення вказується рядком, що містить нуль.
Для кожного набору даних виведіть кількість працівників, включених у першу групу набору даних, тобто group_1, в окремому рядку. Жодних зайвих символів не повинно бути у виведенні.
Приклад 1