#P1810. 字符串检查

字符串检查

题目描述

现在有nn个由大写英文字符组成的字符串,且这些字符串不会互相包含,也不会相等。现在想知道有哪些字符串满足如下条件。

设满足条件的字符串为SS,存在其他的两个字符串拼接在一起后,能通过去除一个非空前缀和一个非空后缀变为字符串SS。这两个用于拼接的字符串可以是同一个,也可以为SS

输入描述

第一行输入一个正整数n(1n5000)n(1\le n\le 5000),表示字符串的个数。

接下来输入nn行,每行输入一个由大写英文字符组成的字符串。字符串长度20\le 20

输出描述

第一行输出一个正整数 mm,表示符合条件的字符串数量。

接下来输出mm行,每行一个由大写英文字符组成的字符串,表示这个字符串符合条件。按照字典序升序输出。

样例

输入

10
KPZOKNSTGLUNPPDKPFFW
NDPKU
KPFFWN
CCHXNNY
GWSGZ
NNYCCHX
FMVKSOHOPGZWG
SGZNNYCC
PKUFMVKSOHOPG
CCSGZN

输出

6
CCHXNNY
CCSGZN
KPFFWN
NNYCCHX
PKUFMVKSOHOPG
SGZNNYCC