一款新的马里奥派对(Mario Party)迷你游戏“Dicey Dictionary”(骰子字典)刚刚推出,库巴(Bowser)正试图赢得一切。马里奥宇宙的神秘语言 $L$ 由一组单词组成。库巴正在决定在他的定制普通 6 面骰子上放哪些字母,以最大化他获胜的机会。每个骰子的每个面上都有一个字母,而不是数字。
在“Dicey Dictionary”中,你通过在任意长的时间内重复投掷骰子来构建一个单词 $w$。$w$ 初始为空字符串,每次投掷后,投出的字母会被追加到 $w$ 的末尾。在你停止投掷后,如果 $w$ 在语言 $L$ 中,你将获得等于 $w$ 长度的分数。你也可以获得部分分数:如果 $w$ 是语言 $L$ 中某个单词的前缀,你也可以获得 $|w|$ 分,其中 $|w|$ 表示 $w$ 的长度。否则,你获得零分。
库巴想要最大化他的期望得分,从而成为最棒的马里奥派对角色。为了最大化他的期望得分,他应该选择哪些字母放在他的骰子上?
输入格式
输入的第一行包含一个整数 $1 \le T \le 1000$,表示接下来的测试用例数量。
每个测试用例的第一行包含一个整数 $1 \le L \le 200\,000$,表示语言 $L$ 中的单词数量。
接下来有 $L$ 行,每行包含一个字符串。$L$ 中的每个字符串仅由英文小写字母 $a$-$z$ 组成,且在同一个单词中,任何字母出现的次数不超过一次。
所有测试用例中所有字符串的总长度不超过 $1\,000\,000$。
输出格式
对于每个测试用例,输出两行。
第一行必须包含库巴的最优骰子选择,表示为一个由恰好 6 个不同的小写字母按字典序排列组成的字符串。如果有多个解,输出字典序最小的一个。
第二行必须包含如果库巴选择用这个骰子玩游戏时的期望得分。如果你的答案与标准答案的绝对或相对误差不超过 $10^{-6}$,则判定为正确。
样例
输入样例 1
1 5 ab ac ad ae af
输出样例 1
abcdef 0.27777777777777777778
说明
骰子上的字母选择显然是最优的,因为这些是语言 $L$ 中仅有的字母。
库巴有 $\frac{5}{6}$ 的概率投出一个不是 $a$ 的字母,无论未来如何投掷,得分都为 $0$。这是因为语言 $L$ 中没有以 $b$、$c$、$d$、$e$ 或 $f$ 开头的单词。
他有 $\frac{1}{6}$ 的概率投出 $a$。在这种情况下,如果他选择停止投掷,他的得分为 $1$,对应的期望得分为 $\frac{1}{6} \cdot 1 = \frac{1}{6}$。然而,如果他选择继续投掷,他有 $\frac{5}{6}$ 的概率拼出语言 $L$ 中的一个单词,有 $\frac{1}{6}$ 的概率拼出单词 $aa$(它不是 $L$ 中任何单词的前缀)。因此,再次投掷的期望得分为 $\frac{1}{6} \cdot \frac{5}{6} \cdot 2 = \frac{5}{18}$,这大于 $\frac{1}{6}$。
因此,如果库巴采取最优策略,使用该骰子的期望得分为 $\frac{5}{18}$。