Dans la théorie du codage, les codes sans préfixe sont souvent utilisés comme ensembles de mots, dont aucun n'est un préfixe. Le mot α
est dit préfixer le mot β
si α
est obtenu à partir de β
en supprimant zéro ou plusieurs caractères à la fin. Par exemple, les mots a
, ab
et aba
sont des préfixes du mot aba
. Par exemple, l'ensemble des mots aba
, aa
et bac
est un code sans préfixe, tandis que l'ensemble des mots abac
, aba
, ba
n'est pas présent car le mot aba
est un préfixe du mot abac
.
Le professeur Decipher travaille dans le laboratoire de recherche sur les informations inutiles et étudie sa nouvelle invention de codes proches du préfixe. Un ensemble de mots est appelé un code presque sans préfixe de niveau k
si le plus grand préfixe commun de deux mots de l'ensemble ne dépasse pas k
en longueur. Par exemple, l'ensemble abac
, abc
, ba
est un code de niveau 2 presque sans préfixe, et l'ensemble abac
, abab
, ba
n'existent pas car le plus long préfixe commun de abac
et abab
est 3.
La tâche suivante que le professeur Decifro a confiée à ses assistants de laboratoire est la suivante : étant donné un ensemble de mots et un nombre k
, il est nécessaire de choisir parmi les mots l'ensemble maximum, qui est le code de niveau k
presque sans préfixe. En tant qu'assistant de laboratoire junior, vous avez été chargé d'écrire le programme correspondant.
Sortir un seul nombre
m
- le nombre maximum de mots pouvant être sélectionnés dans l'ensemble donné afin qu'ils forment un code de niveau
k
presque sans préfixe.  ;
Exemples
# |
Entrée |
Sortie |
1 |
6 2
aba
bacaba
abacaba
baca
abac
caba
3 |