E. Дима и пинки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дима хороший. Очень. Но всему хорошему приходит конец...

Сережа собирается надавать Диме пинков. Для этого Сережа разделил комнату на единичные квадраты. Теперь комната представляет собой прямоугольник, состоящий из единичных квадратов, размера n × m.

Первоначально Сережа поставил Диму в центр некоторого единичного квадрата. Затем он начал давать Диме пинков (известно, что он дал Диме как минимум один пинок). Каждый раз, когда Дима получает пинок, он подлетает и перемешается в одном из четырех направлений (вверх, вниз, влево, вправо) на k (k > 1) единиц длины. Сережа очень добрый, поэтому он пинает Диму так, что тот никогда не ударяется о стены (то есть не вылетает за пределы прямоугольной комнаты). Еще Сережа очень оригинальный, поэтому он пинает Диму так, что тот никогда не пролетает над одним и тем же отрезком, который соединяет центры двух соседних по стороне квадратов, дважды.

Сережа долго пинал Диму. Но Дима не злопамятный — Дима записывает. Поэтому Дима пометил все квадраты, в которых он находился и над центрами которых он пролетал. Дима совершенно не помнит, с какой силой его пинал Сережа. Он хочет восстановить по своим записям все возможные варианты. Помогите ему, найдите все такие значения k, что Сережа мог пинать Диму так, что тот перемещался по комнате на k единиц от одного пинка.

Входные данные

Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 103) — размеры комнаты.

Далее следует n строк, содержащих по m чисел aij — записи Димы: aij = 1, если Дима стоял в клеточке (i, j) или пролетал над ней. В противном случае aij = 0.

Известно, что как минимум одно значение aij равно 1.

Выходные данные

В единственной строке выведите в возрастающем порядке все k (k > 1), при которых могли получиться такие записи Димы. Если таких k не существует и Дима выдумал всю эту историю с пинками, выведите -1.

Примеры
Входные данные
5 5
1 1 1 1 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 1 1 1 1
Выходные данные
2 4
Входные данные
7 7
0 0 1 1 1 0 0
0 0 1 0 1 0 0
1 1 1 1 1 1 1
1 0 1 0 1 0 1
1 1 1 1 1 1 1
0 0 1 0 1 0 0
0 0 1 1 1 0 0
Выходные данные
2
Входные данные
3 3
1 1 1
1 1 1
1 1 1
Выходные данные
-1
Входные данные
4 4
1 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0
Выходные данные
3
Входные данные
5 5
0 0 1 0 0
0 0 1 0 0
1 1 1 1 1
0 0 1 0 0
0 0 1 0 0
Выходные данные
-1