#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > ans;
int main() {
  int n, d, h;
  scanf("%d %d %d", &n, &d, &h);
  int N = n - 1;
  int it = 1;
  int con = 1;
  if (d == 1 && h == 1) {
    if (n == 2) {
      printf("1 2");
    } else {
      printf("-1");
    }
    return 0;
  }
  if (h == d) {
    con = 2;
  }
  if (2 * h < d) {
    printf("-1");
    return 0;
  }
  for (int i = 0; i < h; i++) {
    N--;
    ans.push_back(pair<int, int>(it, it + 1));
    it++;
  }
  for (int i = 0; i < d - h; i++) {
    N--;
    if (i == 0)
      ans.push_back(pair<int, int>(1, it + 1));
    else {
      ans.push_back(pair<int, int>(it, it + 1));
    }
    it++;
  }
  if (N < 0) {
    printf("-1");
    return 0;
  }
  while (it < n) {
    ans.push_back(pair<int, int>(con, it + 1));
    it++;
  }
  for (int i = 0; i < ans.size(); i++) {
    printf("%d %d\n", ans[i].first, ans[i].second);
  }
  return 0;
}
