Клавиатура и вирус

시간 제한2초메모리 제한1024 MB

요약
각 언어의 순서 없는 m개 기호 집합이 주어질 때, n개 언어 중 어느 언어가 켜져 있는지 최악의 경우 몇 번의 키 입력으로 알아낼 수 있는지 구한다.
난이도

어려움10점 중 8점

유형
조합론, 수학, 이분 탐색
정답자
아직 제출이 없습니다

문제

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

С помощью своей клавиатуры Коля печатает на nn различных языках. По счастливому стечению обстоятельств количество букв в каждом из этих языков совпадает с количеством клавиш на Колиной винтажной клавиатуре и равняется mm. Все символы всех языков присутствуют в используемой Колей кодировке и, следовательно, могут быть представлены как числа от 11 до cc. Один и тот же символ может присутствовать в произвольном количестве языков, но для двух различных языков обязательно найдётся хотя бы один символ, который есть в одном из них и отсутствует в другом. Некоторые числа от 11 до cc могут быть не заняты ни одним известным Коле символом.

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

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

Столкнувшись со зловредным вирусом, Коля сначала запаниковал, но вскоре понял, что всё не так уж и плохо. Нажав по разу на каждую клавишу, Коля может выяснить, какой символ ей соответствует, а по этой информации уже определить, какой язык сейчас включен. Однако ему кажется, что определить текущий язык можно и за меньшее количество нажатий. Помогите Коле показать друзьям, что он действительно крутой программист, вычислив минимальное количество нажатий на клавиши винтажной клавиатуры, которое придётся сделать Коле для определения текущего языка в самом худшем случае.

입력

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

Следующие nn строк описывают языки. Каждая из них содержит описание одного языка, состоящее из mm номеров символов в Колиной кодировке. Номера даны в произвольном порядке. Все номера --- целые числа от 11 до cc. Параметр cc не даётся в тесте, но известен для каждой группы тестов.

Гарантируется, что nn, mm и cc положительные.

출력

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

힌트

В первом тесте из условия, если Коле не повезёт и он нажмёт на клавиши, соответствующие 11 и 33, то он не сможет понять, на каком языке пишет.

예제2

  1. 예제 1

    입력
    2 3
    1 2 3
    1 3 4
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 2
    1 2
    3 4
    5 6
    
    예상 출력
    1