#include <bits/stdc++.h>
using namespace std;
const int OO = (int)1e9 + 7;
const int MX = (int)2 * 1e5 + 1;
const int mod = (int)1e9 + 7;
const double EPS = 1e-6;
const double PI = 3.1415926;
int on[MX];
int main(void) {
  ios_base::sync_with_stdio(false);
  int n, d, h;
  while (cin >> n >> d >> h) {
    if (d > 2 * h || (n != 2 && d == 1)) {
      cout << "-1\n";
      continue;
    }
    int node;
    for (int i = 2; i < 2 + h; i++) {
      cout << i << " " << i - 1 << "\n";
      node = i - 1;
    }
    d -= h;
    for (int i = 2 + h; i < min(n + 1, 2 + h + d); i++) {
      if (i == 2 + h)
        cout << 1;
      else
        cout << i - 1;
      cout << " " << i << "\n";
    }
    for (int i = 2 + h + d; i <= n; i++) {
      cout << node << " " << i << "\n";
    }
  }
  return 0;
}
