package main import ( "bufio" "fmt" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) var rdr = bufio.NewReaderSize(os.Stdin, 1000000) func main() { sc.Split(bufio.ScanWords) n, d, k := nextInt(), nextInt(), nextInt() ans, sum := make([]int, k), 0 for i := range ans { ans[i] = i + 1 sum += i + 1 } if sum > d { fmt.Println(-1) return } if sum == d { s := fmt.Sprint(ans) fmt.Println(s[1 : len(s)-1]) return } for i := k - 1; i >= 0; i-- { supple := d - sum if n-(supple+ans[i]) >= 0 { ans[i] = supple + ans[i] s := fmt.Sprint(ans) fmt.Println(s[1 : len(s)-1]) return } sum += n - ans[i] ans[i] = n n-- } fmt.Println(-1) } func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.Atoi(nextLine()) return i }