#include <bits/stdc++.h>
using namespace std;
long long int n, k, s;
vector<long long int> v, ans;
void build(const int &last, const int &i, const int &k,
           const bool &increasing) {
  if (!k)
    return;
  else if (last != v[i] and int(v.size()) - i == k)
    ans.push_back(v[i]), build(v[i], i + 1, k - 1, increasing);
  else if (last == v[i])
    build(last, i + 1, k, increasing ^ 1);
  else
    ans.push_back(last + (increasing ? 1 : -1)),
        build(last + (increasing ? 1 : -1), i, k - 1, increasing);
}
int main() {
  scanf("%lld %lld %lld", &n, &k, &s);
  if (k * (n - 1) < s or k > s) return printf("%s\n", "NO"), 0;
  for (int i = 0; i < k and s > n - 1; ++i, s -= (n - 1))
    v.push_back((i & 1) ? 1 : n);
  if (int(v.size()) & 1)
    v.push_back(n - s);
  else
    v.push_back(1 + s);
  build(1, 0, k, 1);
  printf("%s\n", "YES");
  for (int i = 0; i < int(ans.size()); ++i)
    printf("%lld%c", ans[i], (i == int(ans.size()) - 1) ? '\n' : ' ');
  return 0;
}
