eolymp
bolt
Try our new interface for solving problems
Problems

Покраска

Покраска

Существует стена, состоящая из \textbf{n}×\textbf{n} плиток. Давным-давно эти плитки булы покрашены в \textbf{k} разных цветов. Теперь краска износилась и стену необходимо перекрасить. В этот раз все плитки стены должны быть выкрашены только в один из \textbf{k} цветов. За один ход мы можем покрасить один горизонтальный или вертикальный ряд плиток. Также мы можем покрасить строку в указанный цвет, только если по меньшей мере две плитки в этой строке (горизонтальной или вертикальной) уже этого цвета (или старой или новой краски). Вам необходимо выяснить, какое наименьшее количество ходов необхимо, чтобы покрасить все плитки. \InputFile Первая строка входного файла содержит количество тестов. Первая строка каждого теста содержит два целых числа: \textbf{n} (\textbf{1} < \textbf{n} < \textbf{500}) - количество плиток в одном ряду и \textbf{k} (\textbf{1} ≤ \textbf{k} < \textbf{n}) - количество разных цветов. В каждой из последующих \textbf{n} строк содержится по \textbf{n} целых чисел, задающих номера цветов, в которые покрашены соответствующиеі плитки. Цвета имеют номера от \textbf{1} до \textbf{k}. \OutputFile Первая строка вывода для каждого теста должна содержать число \textbf{q} - минимальное количество ходов, необходимых для покраски всех плиток. Во второй строке перечислите все цвета, в которые можна покрасить стену используя минимальное количество ходов. Номера должны быть перечислены в порядке возрастания. Если стену невозможно покрасить по правилам, указанным в условии, виведите только одно число - \textbf{0}.
Time limit 1 second
Memory limit 64 MiB
Input example #1
2
3 2
1 2 1
2 1 1
1 2 2
2 1
1 1
1 1
Output example #1
4
1
2
1
Source Всеукраинская студенческая олимпиада по программированию, ФИНАЛ, Харьков 15 октября 2011, 2-я лига