#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > ans;
int n, h, d;
vector<int> neigh[100024];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> d >> h;
  int c1 = 0, c2 = 0;
  for (int i = 0; i < h; i++) {
    c1++;
    neigh[i + 1].push_back(i + 2);
    ans.push_back(make_pair(i + 1, i + 2));
  }
  int last = 1;
  for (int i = 0; i < d - h; i++) {
    c2++;
    neigh[last].push_back(h + i + 2);
    ans.push_back(make_pair(last, h + i + 2));
    last = h + i + 2;
  }
  int c3 = 0;
  for (int i = ans.size() + 2; i <= n; i++) {
    c3++;
    if (h == 1) {
      ans.push_back(make_pair(i, 1));
    } else {
      ans.push_back(make_pair(i, 2));
    }
  }
  if (h == 1 && d == 1 && n != 2) {
    cout << "-1\n";
    return 0;
  }
  if (c1 + c2 != d || c2 > h || c1 + c2 + c3 != n - 1 || ans.size() != n - 1) {
    cout << "-1\n";
    return 0;
  }
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i].first << " " << ans[i].second << "\n";
  }
  return 0;
}
