#include <iostream>
using namespace std;
void display(int nums[],int n){
for(int i=0;i<n;i++){
cout<<nums[i]<<' ';
}
cout<<endl;
}
void swap(int &a,int &b){
int t=a;
a=b;
b=t;
}
void dfs(int nums[],int start,int end){
if(start==end){
display(nums,end);
return ;
}
for(int i=start;i<end;i++){
swap(nums[start],nums[i]);
dfs(nums,start+1,end);
swap(nums[start],nums[i]);
}
}
void fullyArranged(int nums[],int n){
dfs(nums,0,n);
}
int main() {
int n;
cin>>n;
int nums[n];
for(int i=0;i<n;i++){
nums[i]=i+1;
}
fullyArranged(nums,n);
}