Задачі
Лісопосадки
Лісопосадки
Часто при вирубці лісу для будівництва, наприклад, доріг проводяться компенсаційні лісопосадки --- рівна або більша кількість дерев висажується у іншому місці. Проте посаджений таким чином ліс відрізняється від того,що виріс сам, --- при компенсаційній посадці дерева як правило саджають у вузлах регулярної гратки, що змінює вплив дерев одне на одного.
Павло займається математичним моделюванням росту дерев, висаджених у вузлах прямокутної гратки. Будемо вважати, що у вузли гратки розміром \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} років.
Вхідні дані #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