#include <bits/stdc++.h>
using namespace std;
int n, d, h;
int u[100005], v[100005], tol;
int main() {
  scanf("%d%d%d", &n, &d, &h);
  tol = 0;
  if (2 * h < d || d + 1 > n)
    tol = -1;
  else if (h != d) {
    for (int i = int(2); i < int(h + 2); i++) u[tol] = i - 1, v[tol++] = i;
    int s = h + 2;
    while (true) {
      int pre = 1;
      for (int i = int(0); i < int(d - h); i++) {
        u[tol] = pre;
        v[tol++] = s;
        pre = s++;
        if (s == n + 1) break;
      }
      if (s == n + 1) break;
    }
  } else {
    int s = 2;
    int pre = 1;
    for (int i = int(0); i < int(h); i++) {
      u[tol] = pre;
      v[tol++] = s;
      pre = s++;
    }
    while (s <= n) {
      u[tol] = 2;
      v[tol++] = s++;
    }
    if (h == 1 && n > 2) tol = -1;
  }
  if (tol == -1)
    printf("-1\n");
  else {
    for (int i = int(0); i < int(tol); i++) printf("%d %d\n", u[i], v[i]);
  }
  return 0;
}
