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

Задача . B. Вырезание пазла


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

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

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

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

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

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

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

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

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

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

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

Примечание

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


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

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

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