#include <bits/stdc++.h>
using namespace std;
vector<long long> vt;
int main() {
  long long n, k, s;
  scanf("%I64d%I64d%I64d", &n, &k, &s);
  long long mx = (n - 1) * k;
  if (s > mx) {
    printf("NO\n");
    return 0;
  } else {
    long long now = s;
    long long sk = k;
    long long stp = 1;
    while (now - (n - 1) >= sk) {
      if (stp == 1) {
        vt.push_back(n);
        now -= (n - 1);
        sk--;
        stp = n;
      } else {
        vt.push_back(1);
        now -= (n - 1);
        sk--;
        stp = 1;
      }
    }
    long long r = now - sk + 1;
    if (sk > now) {
      cout << "NO\n";
      return 0;
    }
    if (r > 0) {
      if (stp == 1) {
        vt.push_back(1 + r);
        now -= r;
        stp = 1 + r;
        sk--;
      } else {
        vt.push_back(n - r);
        now -= r;
        stp = n - r;
        sk--;
      }
    }
    for (int i = stp + 1; i <= n && sk > 0; ++i) {
      stp = i;
      sk--;
      vt.push_back(stp);
    }
    while (sk) {
      if (stp == n) {
        vt.push_back(n - 1);
        stp = n - 1;
      } else {
        vt.push_back(n);
        stp = n;
      }
      sk--;
    }
  }
  printf("YES\n");
  for (int i = 0; i < vt.size(); ++i) {
    printf("%I64d ", vt[i]);
  }
  printf("\n");
  return 0;
}
