#include <bits/stdc++.h>
using namespace std;
void PLAY() {
  cout << fixed << setprecision(10);
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
long long fx4[] = {-1, 1, 0, 0};
long long fy4[] = {0, 0, -1, 1};
long long fx8[] = {-1, -1, -1, 0, 1, 1, 1, 0};
long long fy8[] = {-1, 0, 1, 1, 1, 0, -1, -1};
const long long N = 2e5 + 5;
long long n, d, h;
vector<pair<long long, long long>> v;
int32_t main() {
  PLAY();
  cin >> n >> d >> h;
  if (d > 2 * h or d < h or (n < d + 1)) {
    cout << "-1" << endl;
    return 0;
  }
  if (h == 1 and d == 1 and n >= 3) {
    cout << "-1" << endl;
    return 0;
  }
  long long st = 1;
  long long en = 2;
  for (long long ht = 1; ht <= h; ht++) {
    cout << st << " " << st + 1 << endl;
    st = st + 1;
  }
  en = st + 1;
  st = 1;
  for (long long dt = 1; dt <= (d - h); dt++) {
    cout << st << " " << en << endl;
    st = en;
    en++;
  }
  long long b;
  if (d >= 2) b = 1;
  if (d == h) b = 2;
  long long k = n - (d + 1);
  for (long long i = 1; i <= k; i++) {
    cout << b << " " << en << endl;
    en++;
  }
}
