2315 - 【入门】排列问题

通过次数

16

提交次数

40

时间限制 : 1 秒
内存限制 : 128 MB

排列,一般地,从 n 个不同元素中取出 m(m \leq n) 个元素,按照一定的顺序排成一列,叫做从 n 个元素中取出 m 个元素的一个排列(Arrangement)。

特别地,当 m=n 时,这个排列被称作全排列(Permutation)。

n=3m=2 的排列有:

1 2
1 3
2 1
2 3
3 1
3 2

输入

输入两个整数 nm(1 \leq n \leq 6,1 \leq m \leq n)

输出

输出所有的排列,每个排列占一行,同一个排列中,两个数之间用一个空格隔开。

样例

输入

3 2

输出

1 2
1 3
2 1
2 3
3 1
3 2

提示

1 ~ n 数中取 m 个数的进行全排列,其实就相当于我们在 m 个位置上放数字,那么第一个位置可以放下 1 ~ n 中任意数字,第二个位置上可以放下 1 ~ n 中去掉已选数字中的任意数字...... 当 m 个位置全部填满后输出排列即可,这里因为排列是从小到大输出,所以每个位置枚举的时候应该从小到大枚举,这样就可以保证排列是从小到大的。