def f(L,K,U): if (L,K,U) in Memo: return Memo[(L,K,U)] if K==1: if U<=L<=N: return (L,) else: return None if L<=0: return None T=[] for i in range(U,L+1): X=f(L-i,K-1,i+1) if X: Y=Memo[(L,D,K)]=(i,)+X return Y return None N,D,K=map(int,input().split()) Memo={} T=f(D,K,1) if T: print(*T) else: print(-1)