#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimization("O2")
#pragma GCC optimization("unroll-loops")
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  if (n % 2 == 0) {
    cout << "NO" << endl;
    return 0;
  }
  if (n == 1) {
    cout << "YES" << endl;
    cout << "1 2" << endl;
    return 0;
  } else {
    set<int> nums;
    for (int i = 3; i <= n * 2; i++) {
      nums.insert(i);
    }
    vector<int> ans;
    vector<int> ans2;
    ans.push_back(2);
    bool inv = false;
    for (int i = 1; i < n; i++) {
      int a = *nums.begin();
      if (!inv) {
        ans.push_back(a);
        ans2.push_back(a + 2);
        inv = true;
      } else {
        ans2.push_back(a);
        ans.push_back(a + 2);
        inv = false;
      }
      nums.erase(a + 2);
      nums.erase(a);
    }
    cout << "YES" << endl;
    sort(ans.begin(), ans.end());
    for (auto e : ans) {
      cout << e << " ";
    }
    cout << 1 << " ";
    sort(ans2.begin(), ans2.end());
    for (auto e : ans2) {
      cout << e << " ";
    }
    cout << endl;
  }
  return 0;
}
