N,D,K = [int(i) for i in input().split()] okashi = [i+1 for i in range(N)] # okashi[idx:]において、k個でd円ちょうどになる買い方があるか def check(d, idx, k): target = okashi[idx:] # 金額が届かないか、個数が足りない場合は-1 return sum(target[:k]) <= d and d <= sum(target[-k:]) if N < K: print(-1) elif not check(D, 0, K): print(-1) else: buy = [] for i in okashi: if len(buy) == K - 1: last_okashi = D - sum(buy) buy.append(last_okashi) print(" ".join([str(i) for i in buy])) break if not check(D - (sum(buy) + i), i, K - (len(buy) + 1)): continue buy.append(i)