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