#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int main() {
  ios_base::sync_with_stdio(false);
  int n, d, h;
  cin >> n >> d >> h;
  vector<pair<int, int> > res;
  for (decltype(h) i = 1; i <= h; ++i) res.push_back({i, i + 1});
  if (2 * h < d) {
    cout << -1 << endl;
    return 0;
  }
  if (d == 1) {
    if (n > 2)
      cout << -1 << endl;
    else
      cout << 1 << ' ' << 2 << endl;
    return 0;
  }
  int dst = h, cur = 1;
  while (dst < d) {
    res.push_back({cur, dst + 2});
    cur = dst + 2;
    dst++;
  }
  int v = dst + 2;
  while ((int)res.size() < n - 1) res.push_back({h, v++});
  for (auto &x : res) cout << x.first << ' ' << x.second << endl;
  return 0;
}
