#include <bits/stdc++.h>
using namespace std;
const int N = 100100;
int n, u[N], v[N], d, h;
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> d >> h;
  if (d - h > h) {
    cout << -1 << endl;
    return 0;
  }
  if (d == h && h == 1) {
    if (n != 2)
      cout << -1 << endl;
    else
      cout << "1 2" << endl;
    return 0;
  }
  int cur = 1;
  for (int i = 1; i <= h; i++) {
    cur++;
    u[cur - 1] = cur - 1;
    v[cur - 1] = cur;
  }
  for (int i = 1; i <= d - h; i++) {
    cur++;
    if (i == 1)
      u[cur - 1] = 1;
    else
      u[cur - 1] = cur - 1;
    v[cur - 1] = cur;
  }
  h = d - h;
  if (h == 0) {
    int node = cur - 1;
    while (cur < n) {
      cur++;
      u[cur - 1] = node;
      v[cur - 1] = cur;
    }
  } else {
    while (cur != n) {
      for (int i = 1; i <= h; i++) {
        cur++;
        if (i == 1)
          u[cur - 1] = 1;
        else
          u[cur - 1] = cur - 1;
        v[cur - 1] = cur;
        if (cur == n) break;
      }
    }
  }
  for (int i = 1; i <= n - 1; i++) cout << u[i] << " " << v[i] << endl;
  return 0;
}
