#include <bits/stdc++.h>
using namespace std;
using vint = vector<int>;
using vll = vector<long long>;
using vbool = vector<bool>;
template <class T>
using arr = vector<vector<T>>;
template <class T>
int popcount(T &a) {
  int c = 0;
  for (int i = 0; i < (8 * (int)sizeof(a)); i++) {
    if ((a >> i) & 1) c++;
  }
  return c;
}
template <class T>
void pl(T x) {
  cout << x << " ";
}
template <class T>
void pr(T x) {
  cout << x << endl;
}
template <class T>
void prvec(vector<T> &a) {
  for (int i = 0; i < ((int)a.size() - 1); i++) {
    pl(a[i]);
  }
  pr(a.back());
}
template <class T>
void prarr(arr<T> &a) {
  for (int i = 0; i < ((int)a.size()); i++)
    if (a[i].empty())
      pr("");
    else
      prvec(a[i]);
}
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
int main() {
  long long n, k, s;
  cin >> n >> k >> s;
  if (k > s || (n - 1) * k < s) {
    pr("NO");
    return 0;
  }
  pr("YES");
  long long d = s / k;
  long long m = s % k;
  long long p = 1;
  for (int i = 0; i < (m); i++) {
    if (p == 1) {
      p += d + 1;
    } else {
      p = 1;
    }
    pl(p);
  }
  for (int i = 0; i < (k - m); i++) {
    if (p + d > n) {
      p -= d;
    } else {
      p += d;
    }
    pl(p);
  }
  pr("");
  return 0;
}
