#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  while (b) {
    a %= b;
    swap(a, b);
  }
  return a;
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
bool isprime(long long p) {
  if (p < 2) return false;
  if (p == 2) return true;
  if (p % 2 == 0) return false;
  double limit = sqrt(p);
  for (long long i = 3; i <= limit; i += 2) {
    if ((p % i) == 0) return false;
  }
  return true;
}
long long fac(long long n) {
  long long an = 1;
  while (n > 1) {
    an *= n;
    n--;
  }
  return an;
}
long long kor(long long n, long long st) {
  int res = 1;
  while (st) {
    if (st & 1) res *= n;
    n *= n;
    st >>= 1;
  }
  return res;
}
int main() {
  ios::sync_with_stdio(0);
  int n;
  cin >> n;
  if (n < 6)
    cout << -1 << "\n";
  else if (n % 2 == 0) {
    int cnt = 2;
    for (int i = 0; i < n / 2; ++i) {
      cout << "1 " << cnt++ << "\n";
    }
    for (int i = 0; i < n / 2 - 1; ++i) {
      cout << "2 " << cnt++ << "\n";
    }
  } else {
    int cnt = 2;
    for (int i = 0; i < n / 2; ++i) cout << "1 " << cnt++ << "\n";
    for (int i = 0; i < n / 2; ++i) cout << "2 " << cnt++ << "\n";
  }
  for (int i = 0; i < n - 1; ++i) {
    cout << i + 1 << " " << i + 2 << "\n";
  }
  return 0;
}
