#include <bits/stdc++.h>
using namespace std;
template <class T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
const double EPS = 1e-9;
const double PI = acos(-1.);
const int INF = 1e9;
const int MAXN = 2e5 + 5;
const long long MOD = 1e9 + 7;
void solve() {
  int n, d, h, i, j;
  cin >> n >> d >> h;
  if (d == 1) {
    if (n > 2) {
      printf("-1\n");
      return;
    }
    printf("1 2\n");
    return;
  }
  if (d > h + h) {
    printf("-1\n");
    return;
  }
  for (i = 1; i <= h; i++) {
    printf("%d %d\n", i, i + 1);
  }
  if (d != h) {
    printf("1 %d\n", h + 2);
    for (j = h + 2; j <= d; j++) {
      printf("%d %d\n", j, j + 1);
    }
    for (j = d + 2; j <= n; j++) {
      printf("1 %d\n", j);
    }
  } else {
    for (j = d + 2; j <= n; j++) {
      printf("2 %d\n", j);
    }
  }
}
int main() {
  int t = 1;
  while (t--) {
    solve();
  }
}
