#include <bits/stdc++.h>
struct Swap {
  int i;
  int j;
};
std::vector<Swap> swaps;
void solve4(int a, int b, int c, int d, bool firstLast) {
  if (firstLast) swaps.push_back(Swap{a, b});
  swaps.push_back(Swap{a, c});
  swaps.push_back(Swap{b, d});
  swaps.push_back(Swap{a, d});
  swaps.push_back(Swap{b, c});
  if (firstLast) swaps.push_back(Swap{c, d});
}
void solve5(int a, int b, int c, int d, int e, bool firstLast) {
  if (firstLast) {
    swaps.push_back(Swap{a, b});
    swaps.push_back(Swap{a, c});
    swaps.push_back(Swap{b, c});
  }
  swaps.push_back(Swap{b, e});
  swaps.push_back(Swap{a, d});
  swaps.push_back(Swap{c, e});
  swaps.push_back(Swap{c, d});
  swaps.push_back(Swap{a, e});
  swaps.push_back(Swap{b, d});
  if (firstLast) swaps.push_back(Swap{d, e});
}
int main(void) {
  int n;
  scanf("%d", &n);
  if (n == 1) {
    printf("YES\n");
  } else if (n % 4 <= 1) {
    if (n % 4 == 0) {
      int k = n / 4;
      for (int i = 0; i < k; i++) {
        solve4(4 * i + 1, 4 * i + 2, 4 * i + 3, 4 * i + 4, true);
      }
      for (int i = 0; i + 1 < k; i++) {
        for (int j = i + 1; j < k; j++) {
          solve4(4 * i + 1, 4 * i + 2, 4 * j + 1, 4 * j + 2, false);
          solve4(4 * i + 1, 4 * i + 2, 4 * j + 3, 4 * j + 4, false);
          solve4(4 * i + 3, 4 * i + 4, 4 * j + 1, 4 * j + 2, false);
          solve4(4 * i + 3, 4 * i + 4, 4 * j + 3, 4 * j + 4, false);
        }
      }
    } else {
      int k = (n - 5) / 4;
      solve5(1, 2, 3, 4, 5, true);
      for (int i = 0; i < k; i++) {
        solve4(5 + 4 * i + 1, 5 + 4 * i + 2, 5 + 4 * i + 3, 5 + 4 * i + 4,
               true);
      }
      for (int i = 0; i < k; i++) {
        solve5(1, 2, 3, 5 + 4 * i + 1, 5 + 4 * i + 2, false);
        solve5(1, 2, 3, 5 + 4 * i + 3, 5 + 4 * i + 4, false);
        solve4(4, 5, 5 + 4 * i + 1, 5 + 4 * i + 2, false);
        solve4(4, 5, 5 + 4 * i + 3, 5 + 4 * i + 4, false);
      }
      for (int i = 0; i + 1 < k; i++) {
        for (int j = i + 1; j < k; j++) {
          solve4(5 + 4 * i + 1, 5 + 4 * i + 2, 5 + 4 * j + 1, 5 + 4 * j + 2,
                 false);
          solve4(5 + 4 * i + 1, 5 + 4 * i + 2, 5 + 4 * j + 3, 5 + 4 * j + 4,
                 false);
          solve4(5 + 4 * i + 3, 5 + 4 * i + 4, 5 + 4 * j + 1, 5 + 4 * j + 2,
                 false);
          solve4(5 + 4 * i + 3, 5 + 4 * i + 4, 5 + 4 * j + 3, 5 + 4 * j + 4,
                 false);
        }
      }
    }
    printf("YES\n");
    for (Swap swap : swaps) printf("%d %d\n", swap.i, swap.j);
    printf("\n");
  } else {
    printf("NO\n");
  }
  return 0;
}
