Na teoria da codificação, os códigos sem prefixo são freqüentemente usados como conjuntos de palavras, nenhuma das quais é um prefixo. Diz-se que a palavra α precede a palavra β se α for obtido de β excluindo zero ou mais caracteres no final. Por exemplo, as palavras a, ab e aba são prefixos da palavra aba. Por exemplo, o conjunto de palavras aba, aa e bac é um código sem prefixo, enquanto o conjunto de abac , aba, ba não está presente porque a palavra aba é um prefixo da palavra abac.
Professor Decipher trabalha no Laboratório de Pesquisa de Informações Inúteis e estuda sua nova invenção de códigos quase prefixados. Um conjunto de palavras é chamado de código quase sem prefixo de nível k se o maior prefixo comum de quaisquer duas palavras do conjunto não exceder k de comprimento. Por exemplo, o conjunto abac, abc, ba é um código de nível 2 quase sem prefixo, e o conjunto abac , abab, ba não existem porque o maior prefixo comum de abac e abab é 3.
A próxima tarefa que o professor Decifro definiu para seus assistentes de laboratório é a seguinte: dado um conjunto de palavras e um número k, é necessário escolher entre os dados palavras o conjunto máximo, que é quase código de nível livre de prefixo k. Você, como assistente de laboratório júnior, foi designado para escrever o programa correspondente.