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

vector<int> pop_front(vector<int> vec){
    int temp = vec.size();
    reverse(vec.begin(), vec.end());
    vec.pop_back();
    reverse(vec.begin(), vec.end());
    vec.resize(temp);
    return vec;
}

int main(){
    int n;
    cin>>n;
    vector<int> a(n), b(n);
    //for(int i = 0; i < 2 * n; i++)brojevi.push_back(i + 1);
    //cout<<endl;
    //for(int i = 0; i < n; i++){
      //  if(i % 2 == 0){
        //    a.push_back(brojevi[2 * n - (i / 2) - 1]);
      //  }
        //else{
          //  a.push_back(brojevi[i / 2]);
 //       }
 //   }
 //   reverse(a.begin(), a.end());
 //   a.resize(a.size() / 2);
 //   for(int i = 0; i < n; i++)cout<<a[i]<<" ";
 //   cout<<endl;
 //   for(int i = n; i < 2 * n; i++){
 //       if(i % 2 == 0){
 //           b.push_back(brojevi[2 * n - (i / 2) - 1]);
 //       }
 //       else{
 //           b.push_back(brojevi[i / 2]);
 //       }
 //   }
 //   reverse(b.begin(), b.end());
 //   b.resize(b.size() / 2);
 //   for(int i = 0; i < n ;i++)cout<<b[i]<<" ";
    for(int i = 1; i < 2* n + 1; i++){
        if(i % 2 == 0){
            a.push_back(i);
        }
        else{
            b.push_back(i);
        }
    }
    reverse(a.begin(), a.end());
    a.resize(a.size() / 2);
    reverse(b.begin(), b.end());
    b.resize(b.size() / 2);
    //for(int i = 0; i < n; i++)cout<<a[i]<<" ";
    //for(int i = 0; i < 2 * n; i++)cout<<a[i]<<" "<<b[i]<<endl;
    for(int i = 0; i < n; i++){
        if(i % 2 == 0){
            cout<<b[n - (i / 2) - 1]<<" ";
        }
        else{
            cout<<b[i / 2]<<" ";
        }
    }
    cout<<endl;
    for(int i = 0; i < n; i++){
        if(i % 2 == 0){
            cout<<a[n - (i / 2) - 1]<<" ";
        }
        else{
            cout<<a[i / 2]<<" ";
        }
    }
    return 0;
}