#include <bits/stdc++.h>
int main() {
  int n, d, h;
  int flag = 0;
  scanf("%d %d %d", &n, &d, &h);
  int a[n], b[n];
  int cur = 0;
  if (d > 2 * h || d < h)
    printf("-1\n");
  else {
    int i;
    int j = 2;
    for (i = 1; i <= h; i++) {
      j++;
      a[cur] = i;
      b[cur] = i + 1;
      cur++;
    }
    int start = 1, temp;
    int remain = n - h - 1;
    int x = d - h;
    while (remain != 0) {
      while (remain >= x && x != 0) {
        temp = start;
        for (i = 1; i <= x; i++) {
          a[cur] = temp;
          b[cur] = j;
          cur++;
          temp = j;
          j++;
        }
        remain -= x;
      }
      if (start >= h + 1) flag = 1;
      if (start < h + 1) start++;
      if (remain < x) {
        temp = start;
        for (i = 1; i <= remain; i++) {
          a[cur] = temp;
          b[cur] = j;
          cur++;
          temp = j;
          j++;
        }
        remain = 0;
      }
      x += 1;
    }
    if (flag == 1) printf("-1\n");
    if (flag == 0)
      for (i = 0; i <= cur - 1; i++) printf("%d %d\n", a[i], b[i]);
  }
  return 0;
}
