include[HTML_REMOVED]
using namespace std;
include[HTML_REMOVED]
include[HTML_REMOVED]
const int N=10;
int state[N];//0表示没放数 1~n表示放了哪个数
int n;
bool used[N];//数有没有被用过
void dfs(int u)
{
if(u>n)//边界
{
for(int i=1;i<=n;i) //到达最后把每个坑输出出来
{
cout<<state[i]<<” “;
}
cout<<endl;
}
//一次枚举每个分支,即当前位置可以填哪些数
for(int i=1;i<=n;i)
{
if(!used[i])
{
state[u]=i;
used[i]=true;
dfs(u+1);
//恢复现场
state[u]=0;
used[i]=false;
}
}
}
int main()
{
cin>>n;
dfs(1);
return 0;
}