Олимпиадный тренинг

Задача . B. Сережа и развороты


Задача

Темы: реализация *1300

Пусть задана матрица b размера x × y, определим операцию разворота матрицы b. Разворотом матрицы b называется матрица c размера 2x × y, обладающая свойствами:

  • верхняя половина матрицы c (строки с номерами от 1 до x) в точности равна b;
  • нижняя половина матрицы c (строки с номерами от x + 1 до 2x) симметрична верхней относительно линии раздела двух половин (линия, проходящая посередине между строками x и x + 1).

У Сережи есть матрица a размера n × m. Он хочет найти такую матрицу b, что из нее можно получить матрицу a, выполнив несколько (возможно, ноль) разворотов. Какое минимальное количество строк может содержать такая матрица?

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

Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100). Следующие n строк содержат по m целых чисел — элементы матрицы a. В i-й строке записаны целые числа ai1, ai2, ..., aim (0 ≤ aij ≤ 1)i-я строка матрицы a.

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

В единственную строку выведите ответ на задачу — минимальное количество строк матрицы b.

Примечание

Во первом тестовом примере ответом является матрица b размера 2 × 3:


001
110

Если применить к этой матрице операцию разворота, получится заданная во входных данных матрица a:


001
110
110
001

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

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя