#include <bits/stdc++.h>
const long long int maxn = 1e5 + 5;
const long long mod = 1e9 + 7;
using namespace std;
long long int power(long long int a, long long int b) {
  long long int res = 1;
  while (b > 0) {
    if (b % 2 == 1) res = res * a;
    a = a * a;
    b = b / 2;
  }
  return res;
}
long long po(long long x, long long y) {
  long long res = 1;
  x = x % mod;
  while (y > 0) {
    if (y & 1) res = ((res % mod) * (x % mod)) % mod;
    y = y >> 1;
    x = ((x % mod) * (x % mod)) % mod;
  }
  return res;
}
int main() {
  int t = 1;
  while (t--) {
    int n, d, h;
    cin >> n >> d >> h;
    int flag = 1;
    if (d < h || n < d + 1) flag = 0;
    vector<pair<long long int, long long int> > p;
    int i = 1, cnt = 0;
    while (cnt < h && i + 1 <= n) {
      p.push_back({i, i + 1});
      i++;
      cnt++;
    }
    i++;
    d = d - h;
    if (d > h) flag = 0;
    int key;
    if (d == 0)
      key = 2;
    else
      key = 1;
    cnt = 0;
    if (key == 1) {
      p.push_back({key, i});
      d--;
    }
    while (cnt < d && i + 1 <= n) {
      p.push_back({i, i + 1});
      cnt++;
      i++;
    }
    if (key == 1) i++;
    while (i <= n) {
      if (key == 2 && i == 3) flag = 0;
      p.push_back({key, i});
      i++;
    }
    if (flag == 0)
      cout << "-1" << '\n';
    else
      for (int i = 0; i < n - 1; i++)
        cout << p[i].first << " " << p[i].second << '\n';
  }
}
