#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > res;
int m = 0;
int main() {
  int n;
  int d;
  int h;
  cin >> n >> d >> h;
  m = 1;
  for (int i = 0; i < h; i++) {
    res.push_back(make_pair(i + 1, i + 2));
    m++;
  }
  int ad = d - h;
  int f = 1, t = m + 1;
  if (ad > h) {
    puts("-1");
    return 0;
  }
  for (int i = 0; i < ad; i++) {
    res.push_back(make_pair(f, t));
    f = t;
    t++;
    m++;
  }
  if (m > n) {
    puts("-1");
    return 0;
  }
  ad = n - m;
  if (h + 1 > d && ad && h == 1) {
    puts("-1");
    return 0;
  }
  t = m + 1;
  if (h + 1 > d)
    f = 2;
  else
    f = 1;
  for (int i = 0; i < ad; i++) {
    res.push_back(make_pair(f, t));
    t++;
  }
  if (res.size() != n - 1) {
    puts("-1");
    return 0;
  }
  for (int i = 0; i < res.size(); i++) {
    printf("%d %d\n", res[i].first, res[i].second);
  }
  return 0;
}
