| #include<bits/stdc++.h>
 using namespace std;
 stack<int> s;
 int n ,x= 0,y=0,t,a[100]={0},b[100]={0};
 
 
 void f(int k,int xx,int yy){
 if(k>2*n){
 for(int i=1;i<=n;i++){cout<<b[i]<<" ";
 
 }
 
 cout<<endl;
 return  ;
 }
 
 if(s.size()>0){
 b[yy]=s.top();
 yy++;
 s.pop();
 f(k+1,xx,yy);
 yy--;
 s.push(b[yy]);
 }
 if(xx<=n){
 s.push(a[xx]);
 xx++;
 f(k+1,xx,yy);
 s.pop();
 xx--;
 }
 
 }
 
 
 int main(){
 cin>>n;
 x=1;y=1;
 for(int i=1;i<=n;i++)a[i]=i;
 f(1,x,y);
 return 0;
 }
 (  )
 |