#include <bits/stdc++.h>
using namespace std;
int k;
int curNum = 3;
int nodeOrders[500];
int main() {
  cin >> k;
  if (k % 2 == 0) {
    cout << "NO" << endl;
    return 0;
  }
  cout << "YES" << endl;
  if (k == 1) {
    cout << "2 1" << endl;
    cout << "1 2" << endl;
    return 0;
  }
  cout << 2 * (k + 2) << " " << k * (k + 2) << endl;
  for (int i = 3; i < k + 2; i++) {
    cout << "1 " << i << endl;
    nodeOrders[1]++, nodeOrders[i]++;
  }
  for (int i = 3; i < k + 2; i++) {
    cout << i << " " << k + 2 << endl;
    cout << i << " " << k + 3 << endl;
    nodeOrders[i] += 2, nodeOrders[k + 2]++, nodeOrders[k + 3]++;
  }
  cout << k + 2 << " " << k + 3 << endl;
  nodeOrders[k + 2]++, nodeOrders[k + 3]++;
  for (int i = 3; i < k + 2; i++) {
    int max = 0;
    while (nodeOrders[i] < k) {
      for (int j = i + 1; j < k + 2; j++) {
        if (nodeOrders[j] <= max) {
          cout << i << " " << j << endl;
          nodeOrders[i]++, nodeOrders[j]++;
          break;
        }
        if (j == k + 1) max++;
      }
    }
  }
  cout << "1 2" << endl;
  nodeOrders[1]++, nodeOrders[2]++;
  for (int i = k + 4; i < 2 * k + 3; i++) {
    cout << "2 " << i << endl;
    nodeOrders[2]++, nodeOrders[i]++;
  }
  for (int i = k + 4; i < 2 * k + 3; i++) {
    cout << i << " " << 2 * k + 3 << endl;
    cout << i << " " << 2 * k + 4 << endl;
    nodeOrders[i] += 2, nodeOrders[2 * k + 3]++, nodeOrders[2 * k + 4]++;
  }
  cout << 2 * k + 3 << " " << 2 * k + 4 << endl;
  nodeOrders[2 * k + 3]++, nodeOrders[2 * k + 4]++;
  for (int i = k + 4; i < 2 * k + 3; i++) {
    int max = 0;
    while (nodeOrders[i] < k) {
      for (int j = i + 1; j < 2 * k + 3; j++) {
        if (nodeOrders[j] <= max) {
          cout << i << " " << j << endl;
          nodeOrders[i]++, nodeOrders[j]++;
          break;
        }
        if (j == 2 * k + 2) max++;
      }
    }
  }
  return 0;
}
