该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

自动归位

题目描述

某停车场共有 nn 条停车通道,每条通道有 mm 个车位。

ii 条通道从左到右编号为 11mm。每个车位可能停着一辆车辆、设置了隔离墩,或者为空。

我们使用整数 ai,ja_{i,j} 表示第 ii 条通道从左到右第 jj 个车位的状态:

  • ai,j>0a_{i,j}>0,表示该车位停放着一辆编号为 ai,ja_{i,j} 的车辆;
  • ai,j=1a_{i,j}=-1,表示该车位设置了隔离墩;
  • ai,j=0a_{i,j}=0,表示该车位为空。

保证所有车辆编号互不相同。

每天闭场后,停车场会启动自动归位系统。

对于每一条通道,车辆会不断向右移动。若某辆车右侧的车位存在,且该车位为空,则该车辆会向右移动一格。

隔离墩不会移动,车辆也不能越过隔离墩。

经过足够长时间后,所有车辆都会停止移动。请输出停车场最终状态。

输入格式

第一行输入两个正整数 n,mn,m,表示停车通道数量和每条通道的长度。

接下来输入 nn 行,每行 mm 个整数,表示停车场初始状态。

其中每个整数的含义如下:

  • 0:空车位;
  • -1:隔离墩;
  • 正整数:对应编号的车辆。

输出格式

输出 nn 行,每行 mm 个整数,表示所有车辆完成自动归位后的停车场状态。

相邻两个整数之间用一个空格隔开。

样例输入

5 8
1 0 2 0 0 0 0 0
0 0 -1 3 0 4 0 0
5 0 0 0 0 0 0 0
0 -1 0 6 0 0 7 0
0 0 0 8 0 -1 0 0

样例输出

0 0 0 0 0 0 1 2
0 0 -1 0 0 0 3 4
0 0 0 0 0 0 0 5
0 -1 0 0 0 0 6 7
0 0 0 0 8 -1 0 0

样例说明

第一条通道中没有隔离墩,编号为 12 的车辆会不断向右移动,最终依次停在最右侧两个车位。

第二条通道中,隔离墩将通道分成左右两段。

编号为 34 的车辆位于隔离墩右侧,它们会在这一段内向右归位,最终分别停在该段最右侧的两个位置。

第四条通道中,编号为 67 的车辆位于隔离墩右侧,只能在该区域内移动,最终依次靠右停放。

数据范围

对于全部数据,保证:

  • 1n101\le n\le 10
  • 1m1051\le m\le 10^5
  • ai,j1,0[1,109]a_{i,j}\in{-1,0}\cup[1,10^9]
  • 所有正整数 ai,ja_{i,j} 两两不同。

本题共有 1010 个测试点,部分测试点有特殊限制:

测试点编号 mm\le 特殊性质
11 200200 ABAB
2,32,3 AA
44 BB
5,65,6
77 10510^5 ABAB
88 AA
99 BB
1010

其中:

  • 特殊性质 A:不存在隔离墩;
  • 特殊性质 B:每条通道中至多停放一辆车辆。