#DFS01. 扫地机器人

扫地机器人

题目描述

Mike同学在为扫地机器人设计一个在矩形区域中行走的算法。Mike是这样设计的:先把机器人放在出发点 (1,1) 点上,机器人在每个点上都会用如下的规则来判断下一个该去的点是哪里。规则如下:

1. 优先向右,如果向右不能走(比如:右侧出了矩形或者右侧已访问过了)则尝试向下;

2. 向下不能走则尝试向左;

3. 向左不能走则尝试向上;

4. 直到所有的点都走过。

Mike为了验证自己设计的算法是否正确,打算模拟一下这个算法。每当机器人走过一个单元格时,会在单元格内标记一个数字,这个数字从1开始,每经过一个单元格数字会递增1,直到所有的单元格都扫描一遍,也就是说所有的单元格都标记过数字,机器人会自动停止。

例如:

如果机器人按照上面的规则,清扫一个 3×4 大小的矩形区域,那么标记数字的结果如下图所示:

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

再比如:

如果机器人按照上面的规则,清扫一个 5×5 大小的矩形区域,那么标记数字的结果如下图所示:

  1  2  3  4  5
 22 23 24 25  6
 21 20 19 18  7
 14 15 16 17  8
 13 12 11 10  9

请你帮助Mike设计一个程序,按照上面的规则,将一个 n×m 大小的矩形标记上数字,输出最终标记的结果。


输入

一行内有2个整数 nm,用空格隔开,分别代表矩形区域的行数(高)和列数(宽)。

1≤n,m≤10


输出

输出按照题意机器人走过每个点之后,标记数字的结果。每个数字输出时场宽设置为3。


样例

输入

3 4

输出

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

相关

在以下作业中:

深搜