#2743. First!

First!

题目描述

贝西又开始弹琴了。她发现通过改变字母顺序,她可以使一些字符串在字典顺序上排在所有其他字符串之前(字典排序)。

例如,Bessie\red{Bessie }发现对于字符串"omm\red{omm}"、"moo\red{moo}"、"mom\red{mom}"和"ommnom\red{ommnom}",她可以使用标准字母表让"mom\red{mom}"首先出现,并且她可以使用字母表让"omm\red{omm}"首先出现" abcdefghijklonmpqrstuvwxyz\red{abcdefghijklonmpqrstuvwxyz}"。

然而,Bessie\red{Bessie }想不出任何办法让"moo\red{moo}"或"ommnom\red{ommnom}"首先出现。帮助 Bessie\red{Bessie }通过重新排列字母顺序来计算输入中的哪些字符串可以按字典顺序 排列。

要计算字符串X\red{X}是否在字符串Y\red{Y}之前按字典顺序排列,请找到它们不同的第一个字符的索引,即j\red{j}。如果不存在此类索引,则如果X\red{X}短于Y\red{Y,}X\red{X}Y\red{Y}之前按词典顺序排列。否则,如果X[j]\red{X[j]}在字母表中出现的时间早于Y[j]\red{Y[j],}X\red{X}在字母表上在Y\red{Y}之前。

给定n\red{n}个总长不超过m\red{m}的互不相同的字符串,现在你可以任意指定字符之间的大小关系。问有多少个串可能成为字典 序最小的串,并输出这些串。n<=30,000,m<=300,000\red{n <= 30,000 , m <= 300,000}

输入格式

1\red{1 }行:包含 N(1<=N<=30,000)\red{N (1 <= N <= 30,000) }的单行,即 Bessie\red{Bessie }正在弹奏的琴弦数。

2..1+N\red{2..1+N }行:每行包含一个非空字符串。所有字符串中的字符总数将不超过 300,000\red{300,000}。输入中的所有字符都是小写字符"a\red{a}"到"z\red{z}"。输入将不 包含重复的字符串。

输出格式

1\red{1 }行:包含 K\red{K }的单行,可按字典顺序排在首位的字符串数。

2..1+K\red{2..1+K }行:第 (1+i)\red{(1+i) }行应包含按字典顺序排列的第 i\red{i }个字符串。字符串应该按照它们在输入中给出的顺序输出。

样例

输入样例

4
omm
moo
mom
ommnom

输出样例

2
omm
mom

提示

输入细节:

问题陈述中的示例。

输出详细信息:

只能先订购"omm\red{omm}"和"mom\red{mom}"。