#L4101. 「POI 2021/2022 R1」Druk

「POI 2021/2022 R1」Druk

「POI 2021/2022 R1」Druk

题目描述

印刷匠 Bajtazar 收到了一个印刷任务,要求他印刷一块写有文字的牌子。牌子是一个 n×mn \times m 的网格,字母均匀分布在上面。Bajtazar 要用一个印刷模板来完成印刷,这个模板是一个宽度等于一个字母行的长条。印刷的过程是通过若干次把模板放在牌子上,然后在模板上喷涂颜料。注意印刷的时候模板不能超出牌子的边界。

模板要分别准备横向和纵向的两种版本,而且两种版本必须包含相同的文字。Bajtazar 必须用模板精确地印刷牌子上的每一个位置。注意,不能把任何一种版本的模板旋转,否则字母会倒过来印刷。

请你帮助 Bajtazar 告诉他所有可以用来印刷整个牌子的模板的长度。

输入格式

输入的第一行包含两个正整数 n,mn, m,分别表示牌子上的字母行数和每行的字母数。接下来的 nn 行,每行包含一个长度为 mm 的由小写字母组成的字符串,表示牌子上从上到下的每一行的内容。

输出格式

输出的第一行应该包含一个整数,表示 Bajtazar 可以用来印刷牌子的模板的长度的数量。第二行应该包含所有这些长度,按照严格递增的顺序,用单个空格隔开。如果第一行输出的是 00,那么第二行应该留空。

输入

5 8
aabaaaaa
babaabbb
aabaaaaa
aabaaaaa
abaaabaa

输出

1
4

数据范围与提示

子任务编号 附加限制 分值
1 n=1,m1000n=1, m \leq 1000 10
2 n3,m1000n \leq 3, m \leq 1000 25
3 n,m20n, m \leq 20 20
4 n,m1000n, m \leq 1000 45