#include <bits/stdc++.h>
using namespace std;
vector<int> v[100005];
int main() {
  int n, d, h;
  cin >> n >> d >> h;
  if (d > 2 * h || (d == h && d == 1 && n != 2)) {
    cout << "-1";
    return 0;
  }
  int cur = 1;
  for (int i = 0; i < h; i++) {
    v[cur].push_back(cur + 1);
    cur++;
  }
  int tmp = cur + 1;
  int k = d - h;
  int last = cur - 1;
  cur = 1;
  while (k--) {
    v[cur].push_back(tmp);
    last = cur;
    cur = tmp;
    tmp++;
  }
  for (int i = tmp; i <= n; i++) {
    v[last].push_back(i);
  }
  for (int i = 0; i <= n + 1; i++) {
    for (int l = 0; l < v[i].size(); l++) cout << i << " " << v[i][l] << endl;
  }
  return 0;
}
