#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, d;
  scanf("%d%d%d", &n, &d, &k);
  vector<pair<int, int> > ans;
  for (int i = 1; i <= d; i++) {
    if (i > n) {
      printf("NO\n");
      return 0;
    }
    ans.push_back(make_pair(i, i + 1));
  }
  int x = d + 1, c = 1;
  for (int i = 2; i <= d;) {
    if (k == 1) {
      break;
    }
    if (ans.size() == n - 1) {
      break;
    }
    ans.push_back(make_pair(i, ++x));
    if (k > 2) {
      if (c % 2 == 0) {
        i++;
      }
    } else if (k == 2) {
      i++;
    }
    c++;
  }
  if (ans.size() == n - 1) {
    printf("YES\n");
    for (int i = 0; i < ans.size(); i++) {
      printf("%d %d\n", ans[i].first, ans[i].second);
    }
  } else {
    printf("NO\n");
  }
}
