#include <bits/stdc++.h>
using namespace std;
int n;
int state[10]; //0表示还没放数,1~n表示放那个数
int used[10]; //false表示没用过,true表示用过
void dfs(int u){
if(u>n){
for(int i=1;i<=n;i++){
printf("%d ", state[i]);
}
printf("\n");
return ;
}
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(){
scanf("%d", &n);
dfs(1);
return 0;
}