#include <bits/stdc++.h>
using namespace std;
const int NMAX = (int)2e5, DMAX = NMAX;
int N, D, H;
int main() {
  cin >> N >> D >> H;
  if (!(D <= N && H <= D && D <= 2 * H)) {
    printf("-1\n");
    return 0;
  };
  if (H == 1 && D == 1 && N > 2) {
    printf("-1\n");
    return 0;
  };
  int cur = 1;
  for (int i = 0; i < (int)H; ++i) {
    ++cur;
    cout << (cur - 1) << " " << (cur) << endl;
  }
  bool hook = false;
  for (int i = 0; i < (int)D - H; ++i) {
    ++cur;
    if (!hook)
      cout << (1) << " " << (cur) << endl, hook = true;
    else
      cout << (cur - 1) << " " << (cur) << endl;
  }
  while (++cur <= N) {
    cout << (D == H ? 2 : 1) << " " << (cur) << endl;
  }
  return 0;
}
