B. Вырезание пазла
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Недавно Ёжик вспомнил одно из своих любимых занятий детства — собирание пазлов, и увлёкся им с новой силой. Целыми днями сидел он со своим другом и копался в тысячах маленьких кусочков картинки, отыскивая один за другим нужные элементы.

Вскоре Ёжику пришла в голову замечательная идея: вместо того чтобы покупать готовые пазлы, можно самому брать большой лист с какой-нибудь картиной и разрезать его на множество маленьких прямоугольных кусочков, затем перемешивать их и решать получившуюся головоломку, пытаясь собрать картину обратно. Так получается даже более сложная задача, чем классический пазл: ведь теперь все фрагменты имеют одинаковую прямоугольную форму, и собирать картину можно, только полагаясь на рисунок.

Все кусочки головоломки получаются одинакового размера X × Y, потому что картина разрезается сначала горизонтальными разрезами с шагом X, а затем — вертикальными разрезами с шагом Y. Если мы обозначим первоначальные размеры картины через A × B, то A должно делиться на X, B должно делиться на Y (X и Y — целые числа).

Однако не любое такое разрезание картины даст хороший пазл. Ёжик считает пазл хорошим, если никакие два кусочка в нём не совпадают (при сравнении кусочки разрешается поворачивать, но не переворачивать).

Ваша задача — для данной картины посчитать количество хороших пазлов, которые можно получить из неё, а также вывести пазл с самым маленьким размером кусочка.

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

В первой строке записаны два числа A и B — размеры картины. Это целые положительные числа, не превосходящие 20.

Далее идут A строк по B символов, описывающих саму картину. Строки состоят только из заглавных букв английского алфавита.

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

В первой строке выведите количество возможных хороших пазлов (иными словами, это количество таких пар (X, Y), что пазл с соответствующими размерами элементов будет хорошим). Это число должно быть всегда положительным, потому что вся картина тоже считается хорошим пазлом.

Во второй строке выведите два числа — размеры X и Y самого маленького возможного элемента среди всех хороших пазлов. Сравнение производится в первую очередь по площади XY одного элемента, во вторую очередь — по длине X.

Примеры
Входные данные
2 4
ABDC
ABDC
Выходные данные
3
2 1
Входные данные
2 6
ABCCBA
ABCCBA
Выходные данные
1
2 6
Примечание

В первом примере получаются следующие хорошие пазлы: (2, 1), (2, 2), (2, 4).