有一种被称为字母算式谜(cryptarithmetics)的智力游戏。由 Henry Dudeney 发表在 1924 年 7 月号《Strand Magazine》上的经典例子如下:
S E N D + M O R E = M O N E Y
此类谜题的解是将字母分配为 $0$ 到 $9$ 的十进制数字,且满足以下约束:
- 每个字母必须代表不同的十进制数字。
- 每个数字的首位不能为零。
- 结果必须是一个正确的等式——前两个十进制数之和等于第三个数。
上述谜题的唯一解为 $O = 0$,$M = 1$,$Y = 2$,$E = 5$,$N = 6$,$D = 7$,$R = 8$ 且 $S = 9$,从而得到如下等式:$9567 + 1085 = 10652$。
一个“好”的谜题(如上述经典例子)具有唯一解。现给定谜题的前两个单词,你的任务是从给定的词典中找出所有可能的第三个单词,使得它们能与前两个单词组成一个具有唯一解的“好”谜题。
输入格式
输入的第一行和第二行各包含一个单词,即谜题中的两个加数。
输入的第三行包含一个整数 $n$,表示词典中的单词数量,随后是 $n$ 行,每行包含一个词典中的单词。词典中的单词按字典序排列。
输入中的所有单词均由 $2$ 到 $15$ 个大写字母组成。除第一个测试点外,所有测试点均使用相同的词典,即包含 $279\,496$ 个单词的《柯林斯拼字游戏词典(2019版)》(Collins Dictionary Scrabble Words (2019))。前两个单词也来自该词典。请注意,你可以在随题目下发的样例文件包中找到包含完整词典的第二个测试点。
输出格式
第一行输出一个整数 $m$,表示词典中能与给定的前两个单词组成“好”谜题的单词数量。接下来的 $m$ 行按词典中的顺序输出这些单词。
样例
输入样例 1
SEND MORE 3 FUN HONEY MONEY
输出样例 1
1 MONEY
输入样例 2
DUB UPSPEAK 279496 ... not shown ...
输出样例 2
2 UPMAKER UPTAKEN