#P9076. 玛雅字典

玛雅字典

题目描述

玛雅文明是一个非常神秘的文明,虽然处于新石器时代,却在天文学、数学、农业、艺术等方面都有极高成就,以至于很多人猜测玛雅文明是外星人留下的。

玛雅文不像英文那样用二十六个字母组成,而是使用象形文字,每个字都有四个音节。为了方便表示,可以用单个大写字母代表一个音节,每个象形文字可以用四个大写字母表示出来。

目前语言学家已经成功破译了多个玛雅文字的音节,和这些音节能组成的所有文字,这些文字主要代表一周各天和月份的名称、数目字、方位、颜色以及神祇的名称,但是玛雅文字与组成文字的音节之间的对应关系还是未解之谜。 小玉是一位非常优秀的考古学家,她对玛雅文明有着浓厚的兴趣,最近她发掘了一些玛雅文明的石板,经过仔细的考察,她注意到石板上玛雅文字是按照固定的顺序排列的,这些石板竟然是玛雅人所使用的字典!这意味着她可以确定玛雅文字的字典顺序,对理解玛雅文肯定有很大的帮助!

小玉非常兴奋,但是她还要继续进行发掘工作,因此分析的工作就交给你了。你的任务是对给定的所有石板,求石板出现的所有玛雅文字的一种合理的排布顺序,使其满足所有石板的文字顺序。

输入格式

输入第一行,一个整数 nn ,表示已经破译的音节数量和小玉发掘的石板数量。

第二到 n+1n+1 行,第 i+1i+1 行第一个数 did_i ,表示第 ii 个石板上可识别的文字数量,然后输入did_i 个空格分隔的字符串,表示第 ii 个石板的所有可识别文字,输入按石板的文字顺序,保证每个字符串都是由四个大写字母组成,并且同一行的任意两个字符串各不相同。

字符串都是大写字母构成的。

输出格式

如果不存在满足所有石板顺序的单词顺序,请直接输出 No solution.(不含引号),如果存在,请按顺序输出所有出现的文字对应的字符串,每行一个。如果有多种方案,请输出字典序(指英文字母)最小的一种方案。

输入样例1

3 3
3 CABA BCCA ABCC
4 BAAC CABA AAAA ABCC
2 BCCA AAAA

输出样例1

BAAC
CABA
BCCA
AAAA
ABCC

输入样例2

2 3
2 BBBB BABA
2 ABAA BBBB
3 BABA ABAA ABBB

输出样例2

No solution.

输入样例3

5 6
2 DCCB CEAE
4 ABDB CDEE BCED CEAE
3 BBBD EACD EEAA
2 DCCB BBBD
6 BBBD CAAD EACD CDEE CBEE CEAE
2 EEAA BCED

输出样例3

ABDB
DCCB
BBBD
CAAD
EACD
CDEE
CBEE
EEAA
BCED
CEAE

数据范围

$1 \leq n \leq 10^4, 1 \leq \sum_{i=1}^n d_i \leq 10^5$