英语课本上有 n 个由小写英文字母组成的单词,现在强哥有一个烦恼,自己该怎么背这些英语单词呢。
聪明的强哥很快的就想到了一个办法,他想通过重新安排背单词的顺序,使得对于每个由小写英文字母组成的单词,在其前面背诵的单词都是其子字符串(完全相等的两个串也是各自的子字符串)。 比如单词"for"是"forces", "for"和 "jijdiaofor"的子串,但是它不是"four", "ffrr"和"rof"的子串。 。
这样强哥背完一个单词之后,就只需要再背少数字母,就又可以背出下一个单词了。
想到这里,强哥不禁感叹自己真是个大聪明,欢快的拍起了肚皮。 输入格式 输入第一行为 T ,表示有 T 组数据 ( 1 ≤T ≤ 10 ) (1≤T≤10)。
每组数据第一行包括一个整数 n ( 1 ≤ n ≤ 100 ) (1≤n≤100)——表示强哥要背的单词的数量。
接下来输入 n 行,每行的单词的字母数量是从1到100的,并且每个单词都是由小写英文字母组成。
(有的单词可能相等。)
输出格式 如果无法按照给定的要求安排背单词的顺序,输出"NO"(不带引号)。表示强哥觉得肯定背不完单词了,直接摆烂。
否则输出"YES"(不带引号),并且输出安排好顺序的
n 个单词。 样例1: 1 5 b aba abacaba ab aba 输出 YES b ab aba aba abacaba
样例2: 2 5 a abacaba ba aba abab 3 aaa aaa aaa
输出: NO YES aaa aaa aaa