#include <bits/stdc++.h>
using namespace std;
void testCase() {
  long long n, d, h;
  cin >> n >> d >> h;
  if (d > 2 * h) {
    cout << "-1" << '\n';
    return;
  }
  if (d == 1 && n != 2) {
    cout << "-1" << '\n';
    return;
  }
  vector<long long> ones(h + 1);
  for (long long i = 0; i <= h; i++) {
    ones[i] = i + 1;
    if (i) cout << ones[i - 1] << ' ' << ones[i] << '\n';
  }
  long long j = h + 2;
  for (long long i = 0; i <= d - h; i++) {
    if (i == 0)
      ones[i] = 1;
    else {
      ones[i] = j;
      j++;
      cout << ones[i - 1] << ' ' << ones[i] << '\n';
    }
  }
  for (long long i = d + 2; i <= n; i++) {
    cout << ((d == h) ? 2 : 1) << ' ' << i << '\n';
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long t = 1;
  while (t--) testCase();
  return 0;
}
