eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Лісопосадки

Лісопосадки

Часто при вирубці лісу для будівництва, наприклад, доріг проводяться компенсаційні лісопосадки --- рівна або більша кількість дерев висажується у іншому місці. Проте посаджений таким чином ліс відрізняється від того,що виріс сам, --- при компенсаційній посадці дерева як правило саджають у вузлах регулярної гратки, що змінює вплив дерев одне на одного. Павло займається математичним моделюванням росту дерев, висаджених у вузлах прямокутної гратки. Будемо вважати, що у вузли гратки розміром \textbf{n}×\textbf{m} посаджено дерева. Два дерева вважааються сусідніми, якщо вузли, у яких вони растуть, є сусідніми по вертикалі чи по горизонталі. У кожного дерева є своя высота, рівна деякому цілому числу метрів. Павло вважає, що висота дерев змінюється з роками за наступним законом: \begin{itemize} \item якщо у дерева є хоча б один сусід, висота якого рівно на один метр більше висоты самого дерева, то через рік висота дерева збільшується рівно на один метр; \item якщо у дерева немає такого сусіда, його висота через рік залишається попередньою. \end{itemize} При моделванні росту дерев за цими правилама ріст усіх дерев зупииться в той момент, коли сусідніх дерев з різницею у рості, рівною одному метру, не залишиться. Павло хоче вияснити, скільки роуів пройде до цього моменту і яка висота буде у цей момент у кожного дерева. Допоможіть йому, напишіть програму, яка за заданими початковими висотами дерев визначить, через скільки років ріст усіх дерев зупиниться і якиою буде висота кожного дерева у цей момент. \InputFile У первшому рядку вхідного файлу знаходяться два цілих числа \textbf{n} та \textbf{m} --- розміри ділянки лісу (\textbf{1} ≤ \textbf{n}, \textbf{m} ≤ \textbf{100}). Наступні \textbf{n} рядків містять по \textbf{m} натуральних чисел, кожне з яких задає висоту відповідного дерева. Висота кожного дерева не перевищує \textbf{100}. \OutputFile У першому рядку вихідного файлу виведіть \textbf{t} --- кількість років, яка пройде до того моменту, коли усі дерева перестануть рости. Після цього виведіть \textbf{n} рядків по \textbf{m} чисел --- кожне число повинно бути рівним висоті відповідного дерева через \textbf{t} років.
Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
3 4
1 1 1 2
1 5 5 1
3 1 1 1
Вихідні дані #1
9
3 3 3 3
3 5 5 3
3 3 3 3
Джерело XIII Всеросійська командна олімпіада школярів з програмування