编程题
### 问题描述
云叔有一个包含 $N$ 个单词的列表。他要找出一个包含 $K$ 个单词的子集,满足以下条件:
1. 子集中没有两个字符串是彼此的前缀。
2. 最长单词的长度是最小的。
请注意:单词只包含英文字母的小写形式。
### 输入格式
第一行包含两个整数 $N$ 和 $K$。
接下来的 $N$ 行中,每行包含列表中的一个单词。
### 输出格式
如果没有解决方案,则打印 $-1$。
否则,打印最长单词的长度。
### 样例输入
```
7 4
a
caaaaaaa
baaaaa
baaabaaa
baaab
baaabaa
caaaaaa
```
### 样例输出
```
7
```
### 评测数据规模
$1 \leq K \leq N \leq 10^5$,所有单词的长度之和 $\leq 10^5$。