#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > v;
int main() {
  int n, h, d;
  cin >> n >> d >> h;
  d -= h;
  if (d > h) {
    puts("-1");
    return 0;
  }
  for (int i = 1; i <= h; i++) {
    v.push_back(pair<int, int>(v.size() + 1, v.size() + 2));
  }
  if (d == 0) {
    if (v.size() == 1) {
      if (n > 2) {
        puts("-1");
        return 0;
      }
    } else {
      int r = n - v.size();
      for (int i = 1; i < r; i++) {
        v.push_back(pair<int, int>(2, v.size() + 2));
      }
    }
  } else {
    int p = 1;
    for (int i = 0; i < d; i++) {
      v.push_back(pair<int, int>(p, v.size() + 2));
      p = v.size() + 1;
    }
    int r = n - v.size();
    for (int i = 1; i < r; i++) {
      v.push_back(pair<int, int>(1, v.size() + 2));
    }
  }
  for (auto& x : v) {
    printf("%d %d\n", x.first, x.second);
  }
  return 0;
}
