#include <bits/stdc++.h>
using namespace std;
int n, d, h;
bool ok = 1;
vector<int> V[100005];
void input() {
  cin >> n >> d >> h;
  return;
}
void output(int u) {
  if (V[u].empty()) return;
  for (int i = 0; i < V[u].size(); i++) {
    int t = V[u][i];
    cout << u << " " << t << endl;
    output(t);
  }
  return;
}
void fall() {
  for (int i = 1; i <= h; i++) {
    cout << i << " " << i + 1 << endl;
  }
  for (int i = h + 2; i <= n; i++) {
    cout << 2 << " " << i << endl;
  }
}
void lolicon() {
  if (d == h) {
    if (d == 1 && n != 2)
      cout << -1;
    else
      fall();
  } else if (d > 2 * h)
    cout << -1;
  else {
    for (int i = d + 2; i <= n; i++) {
      V[1].push_back(i);
    }
    for (int i = 2; i <= h + 1; i++) {
      V[i - 1].push_back(i);
    }
    V[1].push_back(h + 2);
    for (int i = h + 3; i <= d + 1; i++) {
      V[i - 1].push_back(i);
    }
    output(1);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  input();
  lolicon();
  return 0;
}
