Module: Función de prefijo, función Z


Problem

9 /10


Códigos casi sin prefijo

Problem

En la teoría de la codificación, los códigos sin prefijo a menudo se usan como conjuntos de palabras, ninguna de las cuales es un prefijo. Se dice que la palabra α precede a la palabra β si α se obtiene de β eliminando cero o más caracteres al final. Por ejemplo, las palabras a, ab y aba son prefijos de la palabra aba. Por ejemplo, el conjunto de palabras aba, aa y bac es un código sin prefijo, mientras que el conjunto de abac , aba< /code>, ba no está presente porque la palabra aba es un prefijo de la palabra abac.

 El Profesor Decipher trabaja en el Laboratorio de Investigación de Información Inútil y estudia su nuevo invento de códigos casi prefijos. Un conjunto de palabras se denomina código casi sin prefijos de nivel k si el mayor prefijo común de dos palabras cualquiera del conjunto no supera la longitud de k. Por ejemplo, el conjunto abac, abc, ba es un código de nivel 2 casi sin prefijo, y el conjunto abac , abab, ba no existen porque el prefijo común más largo de abac y abab es 3.

 La siguiente tarea que el profesor Decifro planteó a sus ayudantes de laboratorio es la siguiente: dado un conjunto de palabras y un número k, se requiere elegir entre los dados palabras el conjunto máximo, que es un código de nivel casi libre de prefijos k. A usted, como asistente de laboratorio junior, se le asignó la tarea de escribir el programa correspondiente.

 
Entrada
La primera línea del archivo de entrada contiene dos números enteros: n y k el número de palabras en el conjunto dado y el nivel de código casi sin prefijo que se construirá ( \(1<= n <= 100000\), \(0 <= k <= 200\) ). Las siguientes líneas n contienen una palabra cada una. Las palabras consisten en letras minúsculas del alfabeto latino. La longitud de cada palabra es de 1 a 200 caracteres. La longitud total de todas las palabras no excede \(10^6\). Todas las palabras son diferentes.
 
Salida
Genera un solo número m: el número máximo de palabras que se pueden seleccionar del conjunto dado para que formen un código de nivel k casi sin prefijo. 

 

Ejemplos
# Entrada Salida
1
6 2
aba
bacaba
abacaba
baca
abac
caba
3