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