#include<bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    deque<int> dq; //back front
    for(int i=1;i<=2*n;i++){
        dq.push_back(i);
    }
    vector<int> levo(n);
    vector<int> desno(n);
    // punimo sredine
    for(int i=1;i<n-1;i+=2){
        levo[i] = dq.front();
        desno[i] = dq.back();
        dq.pop_front();
        dq.pop_back();
    }
    // punimo mesta izmedju sredina
    // a1 b1 a2 b2 a3 b3 a4, punimo prvo a2 pa a3 pa a1 pa a4
    if(n%2==1){
        for(int i = 2;i<n-1;i+=2){
            levo[i] = dq.back();
            desno[i] = dq.front();
            dq.pop_front();
            dq.pop_back();
        }
        levo[0] = dq.back();
        dq.pop_back();
        if(n%2==1){
            levo[n-1] = dq.back();
            dq.pop_back();
        }
        desno[0] = dq.front();
        dq.pop_front();
        if(n%2==1){
            desno[n-1] = dq.front();
            dq.pop_front();
        }
    }
    else{
        for(int i=2;i<n-2;i+=2){
            levo[i] = dq.back();
            desno[i] = dq.front();
            dq.pop_front();
            dq.pop_back();
        }
        levo[n-2] = dq.back();
        desno[n-2] = dq.front();
        dq.pop_back();
        dq.pop_front();
        levo[0] = dq.back();
        desno[0] = dq.front();
        dq.pop_back();
        dq.pop_front();
        levo[n-1] = dq.front();
        desno[n-1] = dq.back();
        dq.pop_back();
        dq.pop_front();
    }
    for(int l: levo){
        cout<<l;
        if(l!=levo[n-1])
            cout<<" ";
    }
    cout<<endl;
    for(int d: desno){
        cout<<d;
        if(d!=desno[n-1])
            cout<<" ";
    }
    cout<<endl;
    /*
    auto it = levo.begin()+1;
    int s = 0;
    while(it < levo.end()){
        s+=abs(*it - *(it-1));
        it++;
    }
    auto it2 = desno.begin()+1;
    while(it2 < desno.end()){
        s+=abs(*it2 - *(it2-1));
        it2++;
    }
    cout<<s<<endl;
    */
}