#include<bits/stdc++.h>
using namespace std;
int b[145];
void panduan(int a[],int n){
int p;
for(p = n-1;p >= 1&&a[p] > a[p+1];p--);
if(p<=0) return;
for(int i = p+1,j = n; i<=j;i++,j--) swap(a[i],a[j]);//单调递减转换为单调递增
for(int i = p+1;i <= n;i++){
if(a[i]>a[p]) {
swap(a[i],a[p]);
break;
}
}
for(int i = 1; i <= n; i++) cout << a[i]<<" ";
cout << endl;
panduan(a,n);
}
int main(){
int n;
cin>>n;
for(int i = 1;i <=n;i++) b[i] = i;
panduan(b,n);
return 0;
}