新字典序
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
abcdefg......
字母表大家都很熟悉了,字典序的含义想必也不用介绍了。
例如有 5 个单词:ab、c、abc、cba、nba,按字典序排列就是 ab、abc、c、cba、nba。
现在小明有 N 个单词。他需要将这些单词按字典序排序。他想把他喜欢的一些单词排在前面。所以他想建立新的字母表。
例如,还是那 5 个单词:ab、c、abc、cba、nba,如果新的字母表是 cnbadef...,那么再按字典序排列就是:c、cba、nba、ab、abc,这时,单词 c 被排在了第一位。
如果新的字母表是 nbacdef...,那么再按字典序排列就是:nba、ab、abc、c、cba,这时,单词 nba 被排在了第一位。
而不论建立什么样的字母表,你会发现,有的单词永远不可能被排在第一位。比如上面例子中的 abc、cba 就是这样不幸的单词。
现在小明想知道,在他可以任意建立新的字母表的前提下,有多少个单词有可能被排在第一位。
你需要按输入的顺序依次输出可能排在第一位的单词。
输入格式
第一行:一个整数 N
接下来 N 行:每行一个单词。
输出格式
第一行:一个整数 M,表示可通过改变字母表的顺序使其字典序最小的单词的个数。
接下来 M 行:每行一个可通过改变字母表的顺序使其字典序最小的单词。满足条件的单词须按照输入顺序依次输出。
样例输入
5
ab
c
abc
cba
nba
样例输出
3
ab
c
nba
数据范围
25% 的数据:
100% 的数据:,数据保证所有单词的总长度不超过 ,所有单词均由小写英文字母组成,且不会出现重复的单词。