#P13592. [NWRRC 2023] Loops

    ID: 15455 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>平衡树2023Special Judge排序构造ICPCAd-hocNWRRC

[NWRRC 2023] Loops

Problem Description

Consider four integers AA, BB, CC, and DD, such that A<B<C<DA < B < C < D. Let's put them in the corners of a square in some order and draw a loop A−B−C−D−AA - B - C - D - A. Depending on the arrangement of the integers, we can get different loop shapes, but some arrangements produce the same shape:

There are three possible loop shapes we can get:

Now consider an n×mn\times m matrix filled with distinct integers from 11 to nmnm, inclusive. Each 2×22\times 2 square in this matrix can be seen as a square with integers in its corners. Let's build a loop for each of these squares like we did before:

Your task is to perform the inverse operation. You are given the shape types for all (n−1)(m−1)(n-1)(m-1) loops, and you need to build an n×mn\times m matrix filled with distinct integers from 11 to nmnm, inclusive, that produces these shapes.

Input Format

The first line contains two integers nn and mm (2≤n,m≤5002\le n, m\le 500).

Each of the next n−1n-1 lines contains a string of m−1m-1 characters without spaces. Each character is a digit from 11 to 33, denoting the type of the shape of the corresponding loop.

Output Format

Print an n×mn\times m matrix filled with distinct integers from 11 to nmnm, inclusive, that produces the shapes of the loops in the input.

It can be shown that such a matrix always exists. If there are multiple answers, print any of them.

3 4
113
231
9 11 7 12
4 6 1 8
2 10 5 3