#include <bits/stdc++.h>
using namespace std;
inline long long gcd(long long a, long long b) {
  while (b != 0) {
    long long c = a % b;
    a = b;
    b = c;
  }
  return a < 0 ? -a : a;
}
inline long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
inline long long lowbit(long long x) { return x & (-x); }
const double PI = 3.14159265358979323846;
const int inf = 0x3f3f3f3f;
const long long INF = 0x3f3f3f3f3f3f3f3f;
const long long mod = 1e9 + 7;
inline char nc() {
  static char buf[1 << 21], *p1 = buf, *p2 = buf;
  return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2)
             ? EOF
             : *p1++;
}
inline long long rd() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = (x << 3) + (x << 1) + (ch ^ 48);
    ch = getchar();
  }
  return x * f;
}
const double eps = 1e-6;
const int M = 1e6 + 10;
const int N = 1e5 + 10;
int a[N << 1];
int main() {
  int n = rd();
  if (n & 1) {
    int p1 = 1, p2 = n + 1;
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
      if (i & 1) {
        a[p1++] = ++cnt;
        a[p2++] = ++cnt;
      } else {
        a[p2++] = ++cnt;
        a[p1++] = ++cnt;
      }
    }
    puts("YES");
    for (int i = 1; i <= n << 1; i++) {
      printf("%d ", a[i]);
    }
    cout << endl;
  } else {
    puts("NO");
  }
}
