#include<iostream>
using namespace std;
int a[10], vis[10] , n;
void o(int x){
if(x > n) {for(int i = 1; i <= n; i++) cout<<a[i]<<" ";puts("");return ;}
for(int i = 1; i <= n; i++){
if(!vis[i]){ //这个数字没有用过
vis[i] = true;
a[x] = i;
o(x+1);
a[x] = 0; //恢复现场
vis[i] = false;
}
}
}
int main(){
cin>>n;
o(1);
return 0;
}