#include <bits/stdc++.h>
using namespace std;
inline long long modadd(long long n, long long m, long long p = 1000000007) {
  return ((n + m) % p + p) % p;
}
inline long long modsub(long long n, long long m, long long p = 1000000007) {
  return ((n - m + p) % p + p) % p;
}
inline long long modpro(long long n, long long m, long long p = 1000000007) {
  return (((n % p) * (m % p)) % p + p) % p;
}
inline unsigned long long int powe(long long first, long long second) {
  unsigned long long int res = 1;
  while (second > 0) {
    if (second & 1) res = res * first;
    second = second >> 1;
    first = first * first;
  }
  return res;
}
inline long long modpow(long long first, long long second,
                        long long p = 1000000007) {
  long long res = 1;
  while (second > 0) {
    if (second & 1) res = modpro(res, first, p);
    second = second >> 1;
    first = modpro(first, first, p);
  }
  return res;
}
inline long long modInverse(long long n, long long p = 1000000007) {
  if (n == 1) return 1;
  return modpow(n, p - 2, p);
}
inline long long modadd3(long long first, long long second, long long z,
                         long long p = 1000000007) {
  return modadd(modadd(first, second, p), z, p);
}
inline long long modadd4(long long first, long long second, long long z,
                         long long w, long long p = 1000000007) {
  return modadd(modadd(first, second, p), modadd(z, w, p), p);
}
template <typename T>
inline T max3(T first, T second, T z) {
  return max(max(first, second), z);
}
template <typename T>
inline T max4(T first, T second, T z, T w) {
  return max(max3(first, second, w), z);
}
template <typename T>
inline T min3(T first, T second, T z) {
  return min(min(first, second), z);
}
template <typename T>
inline T min4(T first, T second, T z, T w) {
  return min(min3(first, second, w), z);
}
template <typename T>
void printArr(T *arr, int s, int n) {
  for (int i = s; i <= n; i++) {
    cout << arr[i] << " ";
  }
  cout << endl;
}
template <class X, class Y, class Z>
struct triple {
  X first;
  Y second;
  Z z;
  friend bool operator<(triple a, triple b) {
    if (a.first != b.first)
      return a.first < b.first;
    else if (a.second != b.second)
      return a.second < b.second;
    else
      return a.z <= b.z;
  }
};
template <class X, class Y, class Z, class W>
struct quad {
  X first;
  Y second;
  Z z;
  W w;
  friend bool operator<(quad a, quad b) {
    if (a.first != b.first)
      return a.first < b.first;
    else if (a.second != b.second)
      return a.second < b.second;
    else if (a.z != b.z)
      return a.z < b.z;
    else
      return a.w < b.w;
  }
};
int main() {
  int erer = 1;
  for (int(erer2) = (1); (erer2) < (erer + 1); (erer2)++) {
    int n, k, s;
    cin >> n >> k >> s;
    int a[100005];
    if (s > (n - k)) {
      for (int(i) = (0); (i) < (n); (i)++) {
        a[i] = 1;
      }
      a[n - k] = (s - (n - k));
    } else {
      for (int(i) = (0); (i) < (k); (i)++) a[i] = s;
      for (int(i) = (k); (i) < (n); (i)++) a[i] = s + 1;
    }
    printArr(a, 0, n - 1);
  }
  return 0;
}
