n,d,k = map(int,input().split()) #ok[p][q][r] pまでみてq個買ってr円使った 状態から条件を満たせるか? INF = 1<<20 ok = [[[0]*(d+1) for _ in range(k+1)] for _ in range(n+1)] ok[n][k][d] = 1 for p in range(n-1,-1,-1): for q in range(k+1): for r in range(d+1): if ok[p+1][q][r] or (r+p+1 <= d and q+1 <= k and ok[p+1][q+1][r+p+1]): ok[p][q][r] = 1 if ok[0][0][0] == 0: print(-1) exit() res = [] def dfs(p,q,r): for i in range(p+1,n+1): if q+1 <= k and r+i <= d and ok[i][q+1][r+i]: res.append(i) dfs(i,q+1,r+i) break dfs(0,0,0) print(*res)