import std.stdio;
import std.algorithm;
import std.range;
import std.conv;

void main() {
    string[] input = split(readln());
    int n = to!int(input[0]);
    int a = to!int(input[1]);
    int b = to!int(input[2]);
    bool check() {
        if (a+b-1 > n) return false;
        if (long(a)*b < n) return false;
        return true;
    }
    if (!check()) {
        writeln(-1);
        return;
    }
    int[] num = new int[a];
    int sum = b;
    num[0] = b;
    foreach (i; 1..a) {
        num[i] = 1;
        sum++;
    }
    while (sum < n) {
        foreach (i; 1..a) {
            if (sum == n) break;
            num[i]++;
            sum++;
        }
    }
    int[] ans = new int[n];
    int x = 1;
    foreach (i; 0..a) {
        foreach_reverse (j; x..x+num[i]) {
            ans[j-1] = x++;
        }
    }
    foreach (i; ans) {
        writeln(i);
    }
}