Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Uprzemysłowienie
(uprzemyslowienie)
Memory limit: 512 MB
Time limit: 3.00 s

W zasadzie każdy człowiek, wchodząc na ulicę Implementacyjnych Dyrdymałów, staje z osłupieniem, podziwiając najwspanialszą na świecie Fabrykę. To arcydzieło cywilizacji dziewiętnastego wieku jest największą fabryką, jaka tylko powstała – dziesiątki tysięcy metrów kwadratowych powierzchni, wiele kondygnacji. Z zewnątrz ściany Fabryki zdobione są czerwoną cegłą, która w połączeniu z ogromnymi połaciami przyciemnianego szkła sprawia niesamowite wrażenie. Gra świateł wewnątrz budynku szokuje swym pięknem każdego odwiedzającego. Fabryka …

Fabryka powinna być najnowocześniejszym dziełem ludzkim, jakie tylko istnieje. Dziś opatentowany został nowy system posadzkowy. Oczywiście Fabryka musi zostać w taki system wyposażona. Zgodnie z tym systemem podłoga Fabryki powinna składać się z dwóch warstw, z których każda składa się z klocków w kształcie litery “L”, złożonych z trzech mniejszych kwadratowych fragmentów o wymiarach 1 × 1. Ponadto, żaden klocek z warstwy drugiej nie może znajdować się nad tylko jednym klockiem z warstwy pierwszej.

Znamienici inżynierowie ułożyli już pierwszą warstwę posadzki na prostokątnym obszarze fabryki o wymiarach N × M. Twoim zadaniem będzie wyznaczenie układu klocków warstwy drugiej, w którym żaden z klocków nie będzie znajdywał się nad tylko jednym klockiem z warstwy pierwszej – każdy klocek z warstwy drugiej musi znajdować się na co najmniej dwoma różnymi klockami z warstwy pierwszej.

Wejście

W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N i M, oddzielone pojedynczym odstępem i oznaczające wymiary posadzki Fabryki. W następnych N wierszach znajduje się po M liczb naturalnych Aij, pooddzielanych pojedynczymi odstępami i oznaczającymi numer klocka na pozycji i j.

Gwarantowane jest, że na wejściu podany będzie poprawny opis posadzki Fabryki.

Wyjście

Na wyjście należy wypisać N wierszy, w każdym z nich powinno znaleźć się po M liczb z przedziału od 1 do N ⋅ M, pooddzielanych pojedynczymi odstępami i reprezentującymi numery klocków, którymi zostało pokryte dane pole. Dane testowe zostały tak przygotowane, że istnieje poprawne rozwiązanie. Jeśli istnieje wiele poprawnych odpowiedzi, możesz wypisać dowolną z nich.

Ograniczenia

2 ≤ NM ≤ 1 000, 1 ≤ Aij ≤ N ⋅ M.

Przykład

Input Output
2 3
1 1 2
1 2 2
1 2 2 
1 1 2 
Input Output
5 6
1 1 3 3 5 5
1 2 4 3 5 6
2 2 4 4 6 6
7 7 8 9 10 10
7 8 8 9 9 10
1 1 3 3 5 5 
2 1 3 4 6 5 
2 2 4 4 6 6 
7 8 8 9 9 10 
7 7 8 9 10 10 
Input Output
6 6
1 1 2 3 3 4 
1 2 2 3 4 4 
5 5 6 7 7 8 
5 6 6 7 8 8 
9 9 10 11 11 12 
9 10 10 11 12 12 
1 2 2 3 4 4 
1 1 2 3 3 4 
5 6 6 7 8 8 
5 5 6 7 7 8 
9 10 10 11 12 12 
9 9 10 11 11 12