#include <bits/stdc++.h>
using namespace std;
using namespace std;
int gcd(int a, int b) {
  while (b) {
    a %= b;
    swap(a, b);
  }
  return a;
}
vector<pair<int, int> > a;
int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, d, h;
  cin >> n >> d >> h;
  if (n == 2) {
    cout << 1 << " " << 2 << endl;
    return 0;
  }
  if ((h == 1) && (d != 2)) {
    cout << -1 << endl;
    return 0;
  }
  if (h == 1) {
    for (int i = 2; i <= n; ++i) cout << 1 << " " << i << "\n";
    return 0;
  }
  if (d > 2 * h) {
    cout << -1 << endl;
    return 0;
  }
  int p = 1;
  int c = 2;
  for (int i = 0; i < h; ++i) {
    if (c > n) {
      cout << -1 << endl;
      return 0;
    }
    a.push_back(pair<int, int>(p, c));
    p = c;
    c++;
  }
  p = 1;
  for (int i = 0; i < d - h; ++i) {
    if (c > n) {
      cout << -1 << endl;
      return 0;
    }
    a.push_back(pair<int, int>(p, c));
    p = c;
    c++;
  }
  for (; c <= n; ++c) {
    a.push_back(pair<int, int>(2, c));
  }
  for (int i = 0; i < a.size(); ++i) {
    cout << a[i].first << " " << a[i].second << "\n";
  }
  return 0;
}
