В отделе кадров Ассоциации Сладких Монстров (AСM) заметили, что продуктивность различных рабочих групп в компании не так хороша, как могла бы быть. Они взяли интервью у сотрудников проблемных групп и обнаружили корень проблемы: доверие (или вернее сказать отсутствие ее). Некоторые сотрудники не доверяют остальным членам группы, что уменьшает их мотивацию и счастье. Отдел кадров хочет решить эту проблему, реорганизовав группы так, чтобы они стали стабильными, то есть состояли из людей, которые доверяют друг другу. С сотрудниками была проведена беседа, после чего было установлено, кому непосредственно доверяет каждый из них. Более того, если сотрудник A доверяет сотруднику B, а сотрудник B доверяет сотруднику C, то сотрудник A будет доверять C. Очевидно также, что каждый из сотрудников доверяет самому себе. В отделе кадров хотят создать наименьшее количество групп людей так, чтобы уменьшить расходы на администрирование (они и сами не хотят тяжело работать).
По заданной информации Вам следует написать программу, которая найдет наименьшее количество стабильных групп, которое можно создать.
Входные данные состоят из нескольких тестов. Каждый тест начинается со строки, содержащей два натуральных числа P и T (1 ≤ P ≤ 1000, 0 ≤ T ≤ 999000). Каждая из следующих P строк содержит имя одного человека. Имена имеют следующий формат: фамилия, запятая, пробел, первое имя (например McBride, John или Smith, Peter). Фамилия и первое имя являются строками, содержащих буквы верхнего и нижнего регистра (без пробелов и знаков пунктуации), и имеющих длину не более 10 символов. Повторов полных имен людей не существует. За именами следуют T блоков по 2 строки, представляющих собой доверительные отношения между людьми. Каждая строка блока содержит имя человека в таком же формате, как было указано ранее. Каждый блок означает, что человек в первой строке доверяет человеку во второй строке. Все люди, находящиеся в доверительных отношениях, перечислены в предыдущем списке из P человек.
Входные данные завершаются тестом-"фантомом" 0 0, который обрабатывать не следует.
Для каждого теста вывести строку, содержащую наименьшее количество стабильных групп людей, которое можно сформировать.