#include <bits/stdc++.h>
int n, d, h, lst;
int main() {
  scanf("%d%d%d", &n, &d, &h);
  if (h > n || d > n || d > 2 * h || d < h) return puts("-1"), 0;
  if (h == d) {
    if (n > h + 1 && h == 1) return puts("-1"), 0;
    for (register int i = 1; i <= h; ++i) printf("%d %d\n", i, i + 1);
    for (register int i = h + 2; i <= n; ++i) printf("2 %d\n", i);
    return 0;
  }
  for (register int i = 1; i <= h; ++i) printf("%d %d\n", i, i + 1);
  d -= h, lst = 1;
  register int id = h + 2;
  for (register int i = 1; i <= d; ++i)
    printf("%d %d\n", lst, id), lst = id, ++id;
  while (id <= n) printf("%d %d\n", 1, id), ++id;
  return 0;
}
