#include <bits/stdc++.h>
using namespace std;
const int N = 200000;
const int INF = (int)10e6;
const double eps = 10e-6;
const long long MOD = 1000000007;
const double PI = M_PI;
int n, d, h;
vector<pair<int, int> > a;
void Print() {
  for (int i = 0; i < a.size(); ++i)
    cout << a[i].first << " " << a[i].second << "\n";
}
int main() {
  std::ios::sync_with_stdio(false);
  cin >> n >> d >> h;
  if (d > h + h) {
    cout << "-1";
    return 0;
  }
  if (n != 2 && d == 1) {
    cout << "-1";
    return 0;
  }
  int cnt = n - 1;
  int last = 1;
  for (int i = 1; i <= h; ++i) {
    a.push_back(make_pair(last, last + 1));
    last++;
  }
  cnt -= h;
  if (h == d && cnt > 0) {
    for (int i = 1; i <= cnt; ++i) {
      a.push_back(make_pair(2, last + 1));
      last++;
    }
    Print();
    return 0;
  }
  if (cnt > 0) {
    a.push_back(make_pair(1, last + 1));
    last++;
    cnt--;
  }
  if (cnt == 0) {
    Print();
    return 0;
  }
  if (cnt > 0) {
    for (int i = 1; i < d - h; ++i) {
      a.push_back(make_pair(last, last + 1));
      last++;
      cnt--;
    }
  }
  if (cnt == 0) {
    Print();
    return 0;
  }
  for (int i = 1; i <= cnt; ++i) {
    a.push_back(make_pair(1, last + 1));
    last++;
  }
  Print();
  return 0;
}
