#include <bits/stdc++.h>

#define last_bit(x) (x&(-x))

#define leftSon (node << 1)
#define rightSon ((node << 1) | 1)

#define pii pair < int , int >

using namespace std;

struct psychotronic_induction {
    int electromagnetic_wave = 7;
};

const int inf = 0x3f3f3f3f;
const long long infL = LLONG_MAX;

int n, a, b;
int main()
{
    scanf("%d %d %d", &n, &a, &b);

    if (a % b && b % a) {
        printf("-1\n");
        return 0;
    }

    if (a * b != n) {
        printf("-1\n");
        return 0;
    }

    printf("%d\n", b * a * (a - 1) / 2);
    for (int k = 1; k <= n; k += a) {
        for (int i = k; i < k + a; ++i)
            for (int j = i + 1; j < k + a; ++j)
                printf("%d %d\n", i, j);
    }

    return 0;
}