#include <bits/stdc++.h>
using namespace std;
int parent[1 << 20];
int main() {
  int n, d, h;
  cin >> n >> d >> h;
  if (d <= 2 * h && d >= h && n >= h && n >= d && h >= 2) {
    int edge_cnt = n - 1;
    for (int i = 1; i <= n; ++i) parent[i] = i;
    parent[1] = 1;
    parent[2] = 1;
    edge_cnt--;
    int i;
    i = 2;
    int p = h - 1;
    while (p > 0) {
      i++;
      parent[i] = i - 1;
      p--;
      edge_cnt--;
    }
    int b_left = d - h - 1;
    if (edge_cnt > 0 && d - h > 0) {
      i++;
      parent[i] = 1;
      edge_cnt--;
    }
    while (b_left > 0) {
      i++;
      parent[i] = i - 1;
      edge_cnt--;
      b_left--;
    }
    while (edge_cnt > 0) {
      i++;
      parent[i] = 2;
      edge_cnt--;
    }
    for (int i = 2; i <= n; ++i) {
      printf("%d %d\n", i, parent[i]);
    }
  } else if (d <= 2 * h && d >= h && n >= h && n >= d && h == 1 && d == 2) {
    int edge_cnt = n - 1;
    parent[1] = 1;
    parent[2] = 1;
    edge_cnt--;
    int i = 2;
    while (edge_cnt > 0) {
      i++;
      parent[i] = 1;
      edge_cnt--;
    }
    for (int i = 2; i <= n; ++i) {
      printf("%d %d\n", i, parent[i]);
    }
  } else if (n == 2 && h == 1 && d == 1) {
    puts("1 2");
  } else
    puts("-1");
  return 0;
}
