	package main

	import (
		"bufio"
		"fmt"
		"os"
		"strconv"
	)

	// input scanner
	var sc = bufio.NewScanner(os.Stdin)

	const (
		initialBufSize = 10e4
		maxBufSize     = 10e6
	)

	func next() string {
		sc.Scan()
		return sc.Text()
	}

	func nextInt() int {
		a, _ := strconv.Atoi(next())
		return a
	}

	func nextInt64() int64 {
		a, _ := strconv.ParseInt(next(), 10, 64)
		return a
	}

	func nextFloat64() float64 {
		a, _ := strconv.ParseFloat(next(), 64)
		return a
	}

	func nextInts(n int) []int {
		ret := make([]int, n)
		for i := 0; i < n; i++ {
			ret[i] = nextInt()
		}
		return ret
	}
	func nextFloats(n int) []float64 {
		ret := make([]float64, n)
		for i := 0; i < n; i++ {
			ret[i] = nextFloat64()
		}
		return ret
	}
	func nextStrings(n int) []string {
		ret := make([]string, n)
		for i := 0; i < n; i++ {
			ret[i] = next()
		}
		return ret
	}

	// util
	func max(l []int) int {
		ans := l[0]
		for _, n := range l {
			if n > ans {
				ans = n
			}
		}
		return ans
	}

	func min(l []int) int {
		ans := l[0]
		for _, n := range l {
			if n < ans {
				ans = n
			}
		}
		return ans
	}

	// main
	func main() {
		buf := make([]byte, initialBufSize)
		sc.Buffer(buf, maxBufSize)
		sc.Split(bufio.ScanWords)
		n := nextInt()
		k := nextInt()
		s := nextInt()
		ans := make([]int, n, n)
		if s%2 == 0 {
			a := s / 2
			for i := 0; i < n; i++ {
				if i < k+1 {
					ans[i] = a
				} else {
					ans[i] = a + 2
				}
			}
		} else {
			a := s / 2
			if s == 1 {
				ans[0] = s
				for i := 1; i < n; i++ {
					ans[i] = 2
				}
			} else {
				for i := 0; i < n; i++ {
					if i <= k+1 {
						ans[i] = a + (i % 2)
					} else {
						ans[i] = a + 2
					}
				}
			}
		}
		for i, x := range ans {
			if i != n-1 {
				fmt.Printf("%v ", x)
			} else {
				fmt.Printf("%v\n", x)
			}
		}
	}
