접두사가 거의 없는 코드
Problem
<사업부>
코딩 이론에서 접두어가 없는 코드는 접두어가 아닌 단어 집합으로 자주 사용됩니다. α
라는 단어는 β
에서 α
를 삭제하여 얻은 경우 β
라는 단어의 접두사라고 합니다. 끝에 0개 이상의 문자가 있습니다. 예를 들어 a
, ab
및 aba
라는 단어는 aba
라는 단어의 접두사입니다. 예를 들어 aba
, aa
및 bac
단어 집합은 접두사가 없는 코드인 반면 abac
집합은 , aba
, ba
는 aba
라는 단어가 abac
라는 단어의 접두사이므로 존재하지 않습니다.
Decipher 교수는 쓸모없는 정보 연구실에서 근무하며 접두사 코드에 대한 그의 새로운 발명을 연구합니다. 단어 집합에서 두 단어의 최대 공통 접두어 길이가 k
를 초과하지 않는 경우 수준 k
의 접두어가 거의 없는 코드라고 합니다. 예를 들어 집합 abac
, abc
, ba
는 접두사가 거의 없는 수준 2 코드이고 집합 abac
, abab
, ba
는 abac
와 abab
의 가장 긴 공통 접두어가 3이므로 존재하지 않습니다.
Decifro 교수가 실험실 조교에게 설정한 다음 작업은 다음과 같습니다. 일련의 단어와 숫자 k
가 주어지면 주어진 단어 중에서 선택해야 합니다. 접두어가 거의 없는 수준 코드 k
인 최대 집합입니다. 귀하는 주니어 실험실 조교로서 해당 프로그램을 작성하도록 지정되었습니다.
입력
입력 파일의 첫 번째 줄에는 두 개의 정수가 포함됩니다. \(1<= n <= 100000\), \(0 <= k <= 200\) 스팬>). 다음 n
줄에는 각각 하나의 단어가 포함됩니다. 단어는 라틴 알파벳의 소문자로 구성됩니다. 각 단어의 길이는 1~200자입니다. 모든 단어의 총 길이는 \(10^6\)을 초과하지 않습니다. 모든 단어가 다릅니다.
출력
단일 숫자
m
출력 - 주어진 세트에서 거의 접두사가 없는
k
수준 코드를 형성하도록 선택할 수 있는 최대 단어 수입니다.
예
<헤드>
<일>#일>
입력 |
출력 |
것>
<몸>
1 |
6 2
아바
바카바
아바카바
바카
abac
카바
|
3 |
테이블>