#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<pair<int, int> > vec;
int deg[200000];
void add(int x, int y) {
  vec.push_back(pair<int, int>(1 + x, 1 + y));
  deg[x]++;
  deg[y]++;
}
void f(int k) {
  if (k == 1) {
    add(0, 1);
    n = 1;
    return;
  }
  n = k + 2;
  for (int i = (0); i < (k - 1); i++)
    for (int j = (1); j <= ((k - 3) / 2); j++) add(i, (i + j) % (k - 1));
  for (int i = (0); i < (k - 1); i++)
    for (int j = (1); j <= ((k - 3) / 2); j++)
      add(n + i, n + ((i + j) % (k - 1)));
  for (int i = (0); i < (k - 1); i++) add(i, n - 1);
  for (int i = (0); i < (k - 1); i++) add(n + i, n + n - 1);
  for (int i = (0); i < (k - 1); i++) add(i, n - 2);
  for (int i = (0); i < (k - 1); i++) add(n + i, n + n - 2);
  for (int i = (0); i < (k - 1); i++) add(i, n - 3);
  for (int i = (0); i < (k - 1); i++) add(n + i, n + n - 3);
  add(n - 1, n + n - 1);
  add(n - 2, n - 3);
  add(n + n - 2, n + n - 3);
}
int main() {
  int k;
  scanf("%d", &k);
  if (k & 1) {
    puts("YES");
    f(k);
    printf("%d %d\n", 2 * n, vec.size());
    for (int i = (0); i < (vec.size()); i++)
      printf("%d %d\n", vec[i].first, vec[i].second);
  } else
    puts("NO");
  return 0;
}
