#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:134217728")
using namespace std;
const long long MOD = 998244353;
const long long MAXN = 100000 + 100;
bool check(const vector<int>& v) {
  set<int> q;
  int n = v.size() / 2;
  int s = 0;
  for (int i = 0; i < n; ++i) {
    s += v[i];
  }
  q.insert(s);
  int cur = 0;
  for (int i = 0; i < n; ++i) {
    s += v[(n + cur) % n];
    s -= v[cur];
    cur++;
    q.insert(s);
  }
  if (q.size() > 2) return false;
  if (q.size() == 1) return true;
  int a = *q.begin();
  int b = *(--q.end());
  return abs(a - b) == 1;
}
int main() {
  int n;
  cin >> n;
  if (n % 2 == 0) {
    puts("NO");
    return 0;
  }
  vector<int> vec(2 * n);
  for (int i = 0; i < n; ++i) {
    if (i & 1) {
      vec[i] = 2 * i;
      vec[n + i] = 2 * i + 1;
    } else {
      vec[n + i] = 2 * i;
      vec[i] = 2 * i + 1;
    }
  }
  puts("YES");
  for (int i = 0; i < 2 * n; ++i) {
    printf("%d ", vec[i] + 1);
  }
  return 0;
}
