//从1到m中取n个数,不允许重复取数
#include <iostream>
using namespace std;
int n,a[10];
bool bz[10];
void output()
{
int i;
for (i=1;i<=n; i++)
cout<<a[i]<<" ";
cout<<endl;
}
void f(int cur) //回溯
{
if (cur==n+1) output();//选好了所有的数
else
for (int i=1; i<=n; i++)//表示cur可以选1到n
if ( !bz[i] ) //没有用过就做
{
a[cur]=i;
bz[i]=true;//表示i已经用了
f(cur+1);
bz[i]=false; //把i置为没有用过,供下一次使用
}
}
int main()
{
cin>>n;
f(1);//从一开始
return 0;
}