문제
크기가 M×M인 격자 형태의 벌집이 있다. 이 벌집의 각 칸에는 여왕벌이 될 애벌레들이 한 마리씩 자라고 있다.
(1) 제일 왼쪽 열과, 제일 위쪽 행의 애벌레들은 자신이 자라는 정도를 스스로 결정한다.
이 들은 입력으로 주어질 것이다.
애벌레들이 자라는 정도를 왼쪽 제일 아래 칸에서 시작하여 위쪽으로 가면서 읽고,
제일 위쪽 칸에 도착하면 오른쪽으로 가면서 행의 끝까지 읽었다고 하자.
모든 입력에서 이렇게 읽은 값들은 감소하지 않는 형태이다. (2) 나머지 애벌레들은 자신의 왼쪽(L), 왼쪽 위(D), 위쪽(U)의 애벌레들이 다 자란 다음,
그날 가장 많이 자란 애벌레가 자란 만큼 자신도 자란다.
![efc6e5f9d670c6da62174cf11a66a8c2_1449741903_4646.png](https://u.jungol.co.kr/problem/2914/a251f900-7b5a-4ae0-8b38-e0965b8d0e60.png)
![efc6e5f9d670c6da62174cf11a66a8c2_1449741903_4987.png](https://u.jungol.co.kr/problem/2914/0e949a7c-f2ea-4009-b911-2c3f91870749.png)
![efc6e5f9d670c6da62174cf11a66a8c2_1449741903_5132.png](https://u.jungol.co.kr/problem/2914/7c59cb03-4e2e-4c43-a5e9-90360c1bc5a7.png)
입력
표준 입력으로 다음의 정보가 주어진다. 입력의 첫 줄에는 격자칸의 가로와 세로 크기 M(2≤M≤700)과 날자 수 N(1≤N≤1,000,000)이 자연수로 주어진다.
첫날 아침의 애벌레 크기는 모두 1이므로 입력에 주어지지 않는다. 다음 N개의 줄에는 첫날부터 순서대로 제일 왼쪽 열과 제일 위쪽 행의 애벌레들이 자라는 정도가 다음의 형식으로 주어진다. 본문에서 보인 것과 같이, 자라는 크기를 제일 왼쪽 아래 칸에서 시작해서 위쪽으로 올라가서 제일 위쪽에 도착하면 오른쪽으로 이동하며 읽었다고 하자.
이 값들은 감소하지 않는다. 따라서, 이 수열을 처음부터 읽었을 때 0의 개수, 1의 개수, 2의 개수를 순서대로 입력에 준다. 하루에 대해서 이 세 개수들의 합은 2M-1임이 자명하다. 세 값들 중에 0이 있을 수 있다.
출력
표준 출력으로 다음을 출력한다. M개의 줄에 각각 M 개의 자연수를 출력한다. 이는 각 애벌레의 마지막 날 저녁의 크기를 첫 행부터, 각 행에서는 왼쪽부터 제시한 것이다. (본문의 예와 동일한 형태이다.)
부분문제의 제약 조건 • 부분문제 1: 전체 점수 100점 중 15점에 해당하며, N=1이다. • 부분문제 2: 전체 점수 100점 중 30점에 해당하며, N≤10,000 이고 모든 날에 대해서 2의 개수가 0이다. • 부분문제 3: 전체 점수 100점 중 38점에 해당하며, N≤10,000 이다. • 부분문제 4: 전체 점수 100점 중 17점에 해당하며, 원래의 제약조건 이외의 아무 제약 조건이 없다.
예제1
23
1 1 1
0 3 0
0 0 3
56
4 6
예제2
42
2 3 2
0 6 1
33 4 5
3 3 4 5
2 3 4 5
2 3 4 5