编程题
### 问题描述
Alice 正在开发一个文本编辑器。为了提高用户体验,她决定为其添加一个自动补全功能。当用户输入某个前缀时,编辑器应该能够推荐最多 $10$ 个以该前缀开头的单词。现在,Alice 希望你能帮她完成这个功能。
给定一个词汇表以及一些查询前缀,你的任务是对于每个查询前缀输出最多 $10$ 个以该前缀开头的单词。如果存在多个答案,请按字典序输出。一个单词可能在输入中出现多次,但在输出中每个单词只能出现一次。
### 输入格式
第一行包含一个整数 $n$,$(1 \leq n \leq 10^5)$,表示词汇表中的单词数量。
接下来的 $n$ 行,每行包含一个由小写字母组成的单词,长度不超过 $100$。
下一行包含一个整数 $q$,$(1 \leq q \leq 10^4)$,表示查询的数量。
接下来的 $q$ 行,每行包含一个查询前缀,长度不超过 $100$。
### 输出格式
对于每个查询,首先输出一个整数,表示该查询的匹配单词数目(如果匹配项大于 $10$ 个,则输出 $10$)。接下来,按字典序输出最多 $10$ 个匹配的单词。如果没有匹配的单词,请输出 $-1$。
### 样例输入
```
5
apple
appetite
applicable
bat
batman
3
app
bat
cat
```
### 样例输出
```
3
apple
appetite
applicable
2
bat
batman
-1
```
### 样例说明
对于第一个查询 `app`,有 $3$ 个匹配的单词:`apple`,`appetite` 和 `applicable`。
对于第二个查询 `bat`,有 $2$ 个匹配的单词:`bat` 和 `batman`。
对于第三个查询 `cat`,没有匹配的单词。
### 测评数据规模
$1 \leq n,q \leq 10^3$。且词汇表和待查寻的单词长度均不超过 $100$。
所有的输入单词和查询前缀均由小写英文字母组成。