#include #include using namespace std; int v[128][128]; int main () { int k, n, m; scanf ("%d %d %d", &k, &n, &m); if (n < k && m < k) { printf ("-1\n"); return 0; } if ((k == 2 || k == 3) && (n == k && m == k)) { printf ("-1\n"); return 0; } int muc = 1; if (m != k) { muc = 0; swap (n, m); } int tot = k * (k - 1) / 2; for (int i = 2; i <= n; ++i) v[i][i - 1] = v[i - 1][i] = 1; if (muc) printf ("%d\n", n - 1); else printf ("%d\n", tot - (n - 1)); for (int i = 1; i <= k; ++i) for (int j = i + 1; j <= k; ++j) if (v[i][j] == muc) printf ("%d %d\n", i, j); return 0; }