2584 - 【入门】矩阵翻转输出

通过次数

13

提交次数

29

Time Limit : 1 秒
Memory Limit : 128 MB

给定一个 m 行、n 列的矩阵,你需要根据要求将它水平翻转或竖直翻转。对于矩阵 A = \begin{bmatrix} 4 & 3 & 1 \ 5 & 6 & 2 \end{bmatrix},如果我们对 A 进行水平翻转,我们将得到 A' = \begin{bmatrix} 1 & 3 & 4 \ 2 & 6 & 5 \end{bmatrix};如果我们对 A 进行竖直翻转,我们将得到 A'' = \begin{bmatrix} 5 & 6 & 2 \ 4 & 3 & 1 \end{bmatrix}

Input

测评机会反复运行你写的程序。每次程序运行时,首先在第一行输入 2 个整数,分别对应题目描述中的 mn1 \leq m,n \leq 100),两个整数之间用一个空格分隔。

接下来输入 m 行,每行包含 n 个整数,每两个整数之间用一个空格分隔。

接下来输入一行,输入一个整数为1或0。当输入为1时对矩阵进行水平翻转;当输入为0时对矩阵进行竖直翻转。

Output

输出包括 m 行,每行包含 n 个整数,按要求输出翻转后的矩阵,每行任意两个整数之间用一个空格分隔,每行最后一个整数后面没有空格。

Examples

Input

2 3
1 2 3
3 4 6
1

Output

3 2 1
6 4 3

Input

3 2
1 2
3 4
5 6
0

Output

5 6
3 4
1 2

Hint

每次运行后你将使用二维数组存储读入的矩阵。在输出矩阵时,由于要求输出的方式不同,程序与之前课程直接输出二维数组的方式也略有不同,主要差异在于两层for循环的先后顺序,以及for循环中索引由大到小还是由小到大的顺序。

请注意,如果你希望输出的行末没有多余的空格,在输出最后一个元素时,你将有可能需要用到if语句(就像我们在前面的课程中已经做过的一样)。

请注意,不要让你的程序输出任何多余的内容,否则测评机都会给出“运行结果错误”的提示。