#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, d, h;
  cin >> n >> d >> h;
  if (d > 2 * h || d < h) {
    cout << "-1" << endl;
    return 0;
  }
  if (d == 1 && h == 1 && n != 2) {
    cout << "-1" << endl;
    return 0;
  }
  vector<pair<int, int> > p;
  for (int i = 0; i < h; i++) {
    p.push_back(pair<int, int>(i + 1, i + 2));
  }
  if (d - h > 0) {
    p.push_back(pair<int, int>(1, h + 2));
    for (int i = 1; i < d - h; i++) {
      p.push_back(pair<int, int>(h + 1 + i, h + 2 + i));
    }
  }
  if (d + 1 > n) {
    cout << "-1" << endl;
    return 0;
  }
  if (h != 1) {
    for (int i = d + 2; i <= n; i++) {
      p.push_back(pair<int, int>(2, i));
    }
  } else {
    for (int i = d + 2; i <= n; i++) {
      p.push_back(pair<int, int>(1, i));
    }
  }
  for (int i = 0; i < p.size(); i++) {
    cout << p[i].first << " " << p[i].second << endl;
  }
  return 0;
}
