#include <algorithm>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <deque>
#include <iostream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <ratio>
#include <set>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>

using namespace std;

using ll = long long;
using ull = unsigned long long;
template<class T> using v = vector<T>;
template<class T, class U> using p = pair<T, U>;

#define REP(i, n) for(int i = 0; i < n; ++i)

template<class T> T read() { T x{}; cin >> x; return x; }
template<class T> v<T> read(int N){ v<T> x(N); REP(i, N) cin >> x[i]; return x; }

template<class T>
void write(const T &x){ cout << x << endl; }
void write(double x){ printf("%.15f\n", x); }

const ull MOD = 1000'000'007;



int main(){
    ll N, K, S;
    cin >> N >> K >> S;
    
    if(S == (ll)1e9){
        ll i = 1;
        cout << S;
        for(;i < K; ++i){
            cout << " " << S;
        }
        for(; i < N; ++i){
            cout << " " << 1;
        }
        cout << endl;
        return 0;
    }
    
    ll a1 = S / 2, a2 = S - a1;
    cout << a1;
    ll i = 1;
    while(i < K + 1) {
        swap(a1, a2);
        cout << " " << a1;
        ++i;
    }
    while(i < N){
        cout << " " << S + 1;
        ++i;
    }
    cout << endl;
    
}

