#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T bigmod(T p, T e, T M) {
  long long int ret = 1;
  for (; e > 0; e >>= 1) {
    if (e & 1) ret = (ret * p) % M;
    p = (p * p) % M;
  }
  return (T)ret;
}
template <class T>
inline T gcd(T a, T b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
template <class T>
inline T modinverse(T a, T M) {
  return bigmod(a, M - 2, M);
}
template <class T>
inline T bpow(T p, T e) {
  long long int ret = 1;
  for (; e > 0; e >>= 1) {
    if (e & 1) ret = (ret * p);
    p = (p * p);
  }
  return (T)ret;
}
int toInt(string s) {
  int sm;
  stringstream ss(s);
  ss >> sm;
  return sm;
}
int toLlint(string s) {
  long long int sm;
  stringstream ss(s);
  ss >> sm;
  return sm;
}
int main() {
  int t, i, j, k, n, q;
  scanf("%d", &n);
  if (n == 1) {
    printf("YES\n2 1\n1 2");
    return 0;
  }
  if (n % 2 == 0) {
    printf("NO");
    return 0;
  }
  printf("YES\n%d %d\n", 4 * n - 2, (2 * n - 1) * n);
  printf("1 2\n");
  q = n - 1;
  for (k = 0, i = 3; k < q; k++, i++) printf("1 %d\n", i);
  for (k = 0; k < q; k++, i++) printf("2 %d\n", i);
  for (j = 3; j < 3 + q; j++) {
    for (k = 3 + q + q; k < 3 + q + q + q; k++) printf("%d %d\n", j, k);
  }
  for (k = 3 + q + q; k < 3 + q + q + q; k += 2) printf("%d %d\n", k, k + 1);
  for (j = 3 + q; j < 3 + q + q; j++) {
    for (k = 3 + q + q + q; k < 3 + q + q + q + q; k++) printf("%d %d\n", j, k);
  }
  for (k = 3 + q + q + q; k < 3 + q + q + q + q; k += 2)
    printf("%d %d\n", k, k + 1);
}
