import Control.Applicative
import Data.List
import Data.Ratio

main = do
  [n,a,b] <- map read . words <$> getLine :: IO [Int]

  if (a <= n && b <= n-a+1 && b >= ceiling (n % a)) then
    putStrLn $ unwords . map show $ [n-a+1..n] ++ (concat . reverse $ slice (ceiling $ (n-a) % (b-1)) [1..n-a])

    else
    print (-1)


slice _ [] = []
slice n xs = let (a,b) = splitAt n xs in a : slice n b
