import Control.Applicative ((<$>)) main :: IO () main = solve <$> map read <$> words <$> getLine >>= putStrLn solve :: [Int] -> String solve [n, d, k] | k > n = "-1" | d < ss = "-1" | d > ls = "-1" | n == k = if d == ss then (unwords . map show) [1..n] else "-1" | otherwise = let (q, r) = divMod (d - ss) (n - k) in unwords . map show . reverse $ zipWith (+) rs ((replicate q (n - k)) ++ [r] ++ (repeat 0)) where ss = k * (k+1) `div` 2 ls = sum $ take k $ [n, n-1 .. 1] rs = [k, k-1 .. 1]