#include <bits/stdc++.h>
using namespace std;
void KhoitaoCH (int arr[], int n, int idx)
{
arr[idx - 2] = 0;
for(int i=idx; i<=n; i+=2)
{
arr[i] = i;
}
}
void InCH (int arr[], int n)
{
for(int i=2; i<=n; i++)
{
cout << arr[i] - 2 << "\t";
}
cout << endl;
}
int Timsoi (int arr[], int n)
{
for (int i=n; i>0; i-=2)
{
if(4 == i || 3 == i )
{
return 0;
}
if(arr[i] > arr[i-2])
{
return i;
}
}
}
void Hoanvi (int &a, int &b)
{
int tg = a;
a = b;
b = tg;
}
void Xeptang (int arr[], int n, int vt)
{
for(int i=vt; i<n; i+=2)
{
for(int j=i+2; j<=n; j+=2)
{
if(arr[i] > arr[j])
{
Hoanvi(arr[i], arr[j]);
}
}
}
}
void Sinhhoanvi (int arr[], int n)
{
int i;
do
{
i = Timsoi(arr,n);
for(int j=n; j>=i; j-=2)
{
if(arr[j] > arr[i-2])
{
Hoanvi(arr[j], arr[i-2]);
Xeptang(arr, n, i);
InCH(arr,n);
}
}
}
while(i>0);
}
int main()
{
int k;
cin >> k;
int n = 2*k+1;
int arr[n];
KhoitaoCH(arr,n,2);
KhoitaoCH(arr,n,3);
InCH(arr,n);
Sinhhoanvi(arr,n);
int i;
do
{
i = Timsoi(arr,n-1);
for(int j=n-1; j>=i; j-=2)
{
if(arr[j] > arr[i-2])
{
Hoanvi(arr[j], arr[i-2]);
Xeptang(arr, n, i);
KhoitaoCH(arr,n,3);
Sinhhoanvi(arr,n);
}
}
}
while(i>0);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIEtob2l0YW9DSCAoaW50IGFycltdLCBpbnQgbiwgaW50IGlkeCkKewogICAgYXJyW2lkeCAtIDJdID0gMDsKICAgIGZvcihpbnQgaT1pZHg7IGk8PW47IGkrPTIpCiAgICB7CiAgICAgICAgYXJyW2ldID0gaTsKICAgIH0KfQoKdm9pZCBJbkNIIChpbnQgYXJyW10sIGludCBuKQp7CiAgICBmb3IoaW50IGk9MjsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGNvdXQgPDwgYXJyW2ldIC0gMiA8PCAiXHQiOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKfQoKaW50IFRpbXNvaSAoaW50IGFycltdLCBpbnQgbikKewogICAgZm9yIChpbnQgaT1uOyBpPjA7IGktPTIpCiAgICB7CiAgICAgICAgaWYoNCA9PSBpIHx8IDMgPT0gaSApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgaWYoYXJyW2ldID4gYXJyW2ktMl0pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgSG9hbnZpIChpbnQgJmEsIGludCAmYikKewogICAgaW50IHRnID0gYTsKICAgIGEgPSBiOwogICAgYiA9IHRnOwp9Cgp2b2lkIFhlcHRhbmcgKGludCBhcnJbXSwgaW50IG4sIGludCB2dCkKewogICAgZm9yKGludCBpPXZ0OyBpPG47IGkrPTIpCiAgICB7CiAgICAgICAgZm9yKGludCBqPWkrMjsgajw9bjsgais9MikKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFycltpXSA+IGFycltqXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSG9hbnZpKGFycltpXSwgYXJyW2pdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKdm9pZCBTaW5oaG9hbnZpIChpbnQgYXJyW10sIGludCBuKQp7CiAgICBpbnQgaTsKICAgIGRvCiAgICB7CiAgICAgICAgaSA9IFRpbXNvaShhcnIsbik7CiAgICAgICAgZm9yKGludCBqPW47IGo+PWk7IGotPTIpCiAgICAgICAgewogICAgICAgICAgICBpZihhcnJbal0gPiBhcnJbaS0yXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSG9hbnZpKGFycltqXSwgYXJyW2ktMl0pOwogICAgICAgICAgICAgICAgWGVwdGFuZyhhcnIsIG4sIGkpOwogICAgICAgICAgICAgICAgSW5DSChhcnIsbik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICB3aGlsZShpPjApOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBrOwogICAgY2luID4+IGs7CiAgICBpbnQgbiA9IDIqaysxOwogICAgaW50IGFycltuXTsKICAgIEtob2l0YW9DSChhcnIsbiwyKTsKICAgIEtob2l0YW9DSChhcnIsbiwzKTsKICAgIEluQ0goYXJyLG4pOwogICAgU2luaGhvYW52aShhcnIsbik7CgogICAgaW50IGk7CiAgICBkbwogICAgewogICAgICAgIGkgPSBUaW1zb2koYXJyLG4tMSk7CiAgICAgICAgZm9yKGludCBqPW4tMTsgaj49aTsgai09MikKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFycltqXSA+IGFycltpLTJdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBIb2FudmkoYXJyW2pdLCBhcnJbaS0yXSk7CiAgICAgICAgICAgICAgICBYZXB0YW5nKGFyciwgbiwgaSk7CiAgICAgICAgICAgICAgICBLaG9pdGFvQ0goYXJyLG4sMyk7CiAgICAgICAgICAgICAgICBTaW5oaG9hbnZpKGFycixuKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHdoaWxlKGk+MCk7CgogICAgcmV0dXJuIDA7Cn0K