多维猜词游戏(Multidimensional Hangman)有着非常独特的规则。在某种程度上,它就像是同时进行多场传统的猜词游戏,不同之处在于这些词不需要存在于字典中。如果你从未玩过猜词游戏,不用担心:下面提供了你需要的所有信息。
在这个游戏的多维版本中,棋盘上有若干个初始未知的词,它们长度相同。在游戏的每一轮中,你会发现某些词在特定位置上的字符(这些字符是如何被发现的对于本题并不重要)。在某个时刻,当棋盘上每个词都只剩下一个未知字符时,游戏进入“全有或全无”(all or nothing)阶段。此时,你必须选择一个词,使其与棋盘上词的兼容性数量最大化。对于一个选定的词 $P$,如果 $T$ 中所有已知的字母在 $P$ 中的对应位置完全相同,我们就称它与棋盘上的词 $T$ 兼容。
根据棋盘上词的已知信息,你必须确定在“全有或全无”阶段应该选择哪个词,以使兼容性数量最大化。如果存在多个解,请输出字典序最小的那一个。如果 $P_i$ 是 $P$ 的第 $i$ 个字符,$Q_i$ 是 $Q$ 的第 $i$ 个字符,且 $i$ 是使得 $P_i \neq Q_i$ 的最小下标,那么当 $P_i < Q_i$ 时,我们称词 $P$ 在字典序上小于词 $Q$。
输入格式
输入的第一行包含两个整数 $N$ 和 $C$,满足 $1 \le N \le 10^4$ 且 $1 \le C \le 12$,分别表示棋盘上词的数量和词的长度。接下来的 $N$ 行,每行包含一个长度为 $C$ 的词,仅由字符 “a” 到 “z” 组成,其中有一个位置包含字符 “*”,表示该位置的字符仍然未知。
输出格式
输出一行,依次包含一个长度为 $C$ 的词 $T$ 和一个整数 $M$,其中 $M$ 是一个词与输入词可能拥有的最大兼容性数量,$T$ 是所有具有兼容性 $M$ 的词中字典序最小的那一个。
样例
样例输入 1
5 4 rat* ru*d rot* r*ta r*ta
样例输出 1
rata 3
样例输入 2
5 4 bon* fon* n*no *eto *ano
样例输出 2
nano 2