#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, d, h;
  cin >> n >> d >> h;
  if (d <= 2 * h) {
    if (n == 2) {
      cout << 1 << " " << 2 << endl;
    } else if (d >= 2) {
      int num = 1;
      vector<vector<int>> v(n + 3);
      int aux = h;
      while (aux--) {
        v[num].push_back(num + 1);
        num++;
      }
      num++;
      aux = d - h;
      if (aux > 0) {
        v[1].push_back(num);
        aux--;
        num++;
      }
      while (aux--) {
        v[num - 1].push_back(num);
        num++;
      }
      int dif = n - num + 1;
      int extra = 1;
      if (h > 1) {
        extra = 2;
      }
      while (dif--) {
        v[extra].push_back(num);
        num++;
      }
      for (int i = 1; i <= n; i++) {
        if (!(v[i].empty())) {
          for (int j = 0; j < v[i].size(); j++) {
            cout << i << " " << v[i][j] << endl;
          }
        }
      }
    } else {
      cout << -1;
    }
  } else {
    cout << -1;
  }
  return 0;
}
