CF358E Dima and Kicks
题目描述
Dima 是个好人,确实很好,不过好事总会有结束的时候……
Seryozha 决定找 Dima 出气。他将房间分割成一个个单位正方形。这个房间是由单位正方形组成的 $n \times m$ 矩形。
开始时,Seryozha 将 Dima 放在某个正方形的中心,然后开始踢他(已知至少踢了一次)。每踢一次,Dima 会向上、下、左或右其中一个方向飞 $k$ 个单位长度($k > 1$)。Seryozha 非常仁慈,他总能踢得恰到好处,让 Dima 不会撞到墙壁(也就是说,Dima 永远不会飞出房间)。Seryozha 还是个喜欢变动的人,所以他保证 Dima 从未经过同一条连接相邻正方形的线段两次。
Seryozha 踢了 Dima 很长时间,但 Dima 不记仇,反而认真记录了所有他停留过或飞过的正方形。因为被踢得头晕,Dima 忘了 $k$ 的具体值,所以请你帮忙找出所有符合他记录的可能的 $k$ 值。
输入格式
第一行输入两个整数 $n$ 和 $m$ $ (1 \le n, m \le 10^3)$,表示房间的大小。
接下来的 $n$ 行,每行有 $m$ 个整数 $a_{ij}$,表示 Dima 的记录:如果 Dima 曾停留或飞过正方形 $(i, j)$,那么 $a_{ij} = 1$;否则 $a_{ij} = 0$。
至少有一个 $a_{ij}$ 为 $1$。
输出格式
在一行中,按升序列出所有符合条件的 $k$ 值($k > 1$)。如果没有这样的 $k$ 值并且 Dima 很可能是编了个关于被踢的故事,则输出 `-1`。
**本翻译由 AI 自动生成**