Управление видеонаблюдением

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Охранное агентство получило контракт на охрану двух зданий. В каждом из зданий установлено множество камер видеонаблюдения.

Одна из стен комнаты охраны представляет собой прямоугольник, состоящий из nn горизонтальных рядов по mm видеомониторов в каждом. На каждый монитор выводится изображение с камеры, находящейся в одном из зданий. Комната охраны оборудована инновационным пультом управления с четырьмя кнопками: <<влево>>, <<вправо>>, <<вверх>> и <<вниз>>.

Кнопка <<влево>> перемещает изображение с каждого монитора на монитор, находящийся слева от него. При этом изображение из самого левого монитора в каждом ряду перемещается на самый правый монитор этого ряда.

Аналогичным образом действуют кнопки <<вправо>>, <<вверх>> и <<вниз>>. Кнопка <<вправо>> перемещает изображение с каждого монитора на монитор, находящийся справа от него. Изображения из самого правого монитора в каждом ряду перемещаются на самый левый монитор этого ряда. Кнопка <<вверх>> перемещает изображение с каждого из мониторов на монитор, находящийся над ним. Изображения из самого верхнего ряда перемещаются на мониторы самого нижнего ряда. Кнопка <<вниз>> перемещает изображение с каждого из мониторов на монитор, находящийся под ним. Изображения из самого нижнего ряда перемещаются на мониторы самого верхнего ряда.

Назовём блок мониторов размером 2×22 \times 2 удобным для наблюдения, если они показывают изображения из одного и того же здания. В результате перемещения изображений по командам с пульта управления количество удобных для наблюдения блоков может изменяться. При этом один и тот же монитор может входить в несколько удобных для наблюдения блоков.

Требуется написать программу, определяющую максимальное количество удобных для наблюдения блоков, которое можно получить, управляя мониторами с пульта.

입력

Первая строка входных данных содержит два целых числа nn --- количество рядов и mm --- количество мониторов в каждом ряду. Следующие nn строк описывают ряды мониторов в порядке сверху вниз. Каждая из этих строк содержит по mm символов, описывающих мониторы в соответствующем ряду в порядке слева направо. Символ <<1>> означает, что на монитор выводится изображение из первого здания, а символ <<2>> --- из второго здания.

출력

Выходные данные должны содержать единственное целое число --- максимальное количество удобных для наблюдения блоков, которые можно получить, перемещая изображения на мониторах.

힌트

В первом примере с помощью команды <<вправо>>, можно получить слева удобный для наблюдения блок из единиц, а справа --- удобный для наблюдения блок из двоек.

Во втором примере изначально на мониторе присутствуют два удобных для наблюдения блока.

В третьем примере, например, командами <<вправо>> и <<вниз>> можно добиться наличия трех удобных для наблюдения блоков из единиц.