A. Расписание для университета
ограничение по времени на тест
10 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В этой задаче вам предстоит составить недельное расписание пар в университете для преподавателей и групп студентов. Считайте, что учебных дней в неделе всегда 6, а максимальное количество пар в день равно 7 (пары в каждом дне пронумерованы от 1 до 7).

Известно, что в университете учится n групп студентов, работает m преподавателей и в нём есть a аудиторий, в которых можно проводить пары. Также вам задан двумерный массив размера n × m, содержащий следующую информацию. Число, записанное в i-й строке и j-м столбце равно количеству пар, которые преподаватель номер j должен провести у группы номер i за неделю. Составленное вами расписание должно удовлетворять описанному массиву.

Есть еще несколько условий для составления расписания. Один преподаватель не может одновременно вести более одной пары. Аналогично, студенты одной группы не могут одновременно присутствовать более чем на одной паре.

Введем определение функции усталости для преподавателей и групп студентов. Назовём эту функцию f.

Для одного преподавателя усталость подсчитывается следующим образом. Рассмотрим занятость преподавателя в каждый из 6-ти учебных дней. Пусть в день i текущий преподаватель первой для себя парой провёл пару номер x, а последней — пару номер y. Тогда к его усталости добавляется величина (2 + y - x + 1)·(2 + y - x + 1). Если в день i у текущего преподавателя не было пар, то к его усталости не добавляется ничего.

Для одной группы усталость подсчитывается аналогично. Рассмотрим пары, которые будут у текущей группы в каждый из 6-ти учебных дней. Пусть в день i у текущей группы первая для неё пара будет пара номер x, а последняя для неё пара — номер y. Тогда к усталости группы добавляется величина (2 + y - x + 1)·(2 + y - x + 1). Если в день i у текущей группы не было пар, то к её усталости не добавляется ничего.

Таким образом, значение функции f равно суммарной усталости для всех n групп и для всех m преподавателей.

Перед вами стоит задача составить такое расписание, которое минимизирует функцию f.

Жюри подготовило некоторое решение этой задачи. За каждый из тестов вы будете получать определенное количество баллов. Оно равно результату деления значения функции f, полученного решением жюри, на значение функции f, полученное из составленного вашей программой расписания (то есть чем меньше значение функции усталости получает ваше решение, тем больше баллов вы получите), умноженное на 100. Другими словами, если значение f в решении жюри равно p, а в вашем решении — q, то вы получите 100·p / q баллов (обратите внимание, что количество баллов является вещественным числом). Баллы за все тесты будут суммироваться. Ваша цель — набрать как можно больше баллов.

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

В первой строке следует три целых числа n, m и a (1 ≤ n, m, a ≤ 60) — количество групп, количество преподавателей и количество аудиторий.

В следующих n строках следует по m целых чисел от 0 до 24, причём j-е число в i-й строке равно количеству пар, которые преподаватель номер j должен провести у группы i.

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

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

В первую строку выведите полученное минимизированное значение функции f.

После этого выведите пустую строку.

Далее выведите расписание для каждой из групп в возрастающем порядке номеров групп. Для каждой группы выведите по 7 строк, в каждой строке должно содержаться по 6 чисел. Пусть число в i-й строке и j-м столбце равно x. Тогда если в j-й день у текущей группы нет пары номер i, то x должно быть равно нулю. В противном случае, x должно быть равно номеру преподавателя, который должен вести соответствующую пару у соответствующей группы. Количество пар, которые проходят одновременно, не должно превышать количества аудиторий a, которые есть в университете.

Разделяйте описание расписаний для групп пустой строкой.

Примеры
Входные данные
3 3 1
1 0 0
0 1 0
0 0 1
Выходные данные
54

1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0 0 0 0 0 0
2 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0 0 0 0 0 0
0 0 0 0 0 0
3 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Входные данные
3 1 1
1
1
1
Выходные данные
52

1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0 0 0 0 0 0
1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Входные данные
5 7 10
1 3 6 0 1 2 4
0 3 0 6 5 1 4
3 5 1 2 3 2 4
2 3 1 1 4 1 2
2 4 3 2 4 3 2
Выходные данные
1512

0 0 6 0 0 2
0 7 6 3 3 7
3 1 2 3 2 7
3 7 0 0 0 0
5 3 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0 0 4 0 7 6
4 5 7 4 5 5
7 2 4 4 5 5
7 2 0 4 0 0
0 2 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

4 0 7 2 5 7
5 0 2 5 7 1
2 4 1 2 7 1
2 3 0 0 0 0
0 6 0 0 0 0
0 6 0 0 0 0
0 0 0 0 0 0

0 0 0 5 3 5
0 2 4 7 2 6
0 5 7 0 0 0
1 5 1 0 0 0
2 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0 0 5 7 2 3
0 1 3 2 6 3
5 7 6 5 6 4
5 4 2 2 0 0
1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Примечание

Во время основной части соревнования (одна неделя) ваше решение будет протестировано на 100 предварительных тестах. Первые 10 из них доступны для скачивания по ссылке http://assets.codeforces.com/files/vk/vkcup-2017-wr2-materials-v1.tar.gz.

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