#include <bits/stdc++.h>
using namespace std;
const double EPS = (1e-7);
int dcmp(double x, double y) { return fabs(x - y) <= EPS ? 0 : x < y ? -1 : 1; }
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
long long lcm(long long a, long long b) { return (a * (b / gcd(a, b))); }
bool in_range(int i, int j, int n, int m) {
  return i >= 0 && i < n && j >= 0 && j < m;
}
void solution() {
  int n, h, d;
  cin >> n >> d >> h;
  if (ceil(d / 2.0) > h || (n > 2 && d == 1)) {
    cout << -1;
    return;
  }
  int l = 1;
  for (int i = 0; i < int(h); i++) {
    cout << l << " " << l + 1 << endl;
    l++;
  }
  bool ok = false;
  for (int i = 0; i < int(d - h); i++) {
    if (i == 0)
      cout << 1 << " " << l + 1 << endl;
    else
      cout << l << " " << l + 1 << endl;
    l++;
    ok = true;
  }
  for (int i = int(l); i < int(n); i++) {
    cout << (ok ? 1 : 2) << " " << l + 1 << endl;
    l++;
  }
}
int main() {
  ios::sync_with_stdio(false);
  solution();
  return 0;
}
