#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
typedef long long ll;
typedef double lf;
typedef pair<ll,ll> ii;
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define RST(i,n) memset(i,n,sizeof i)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(),a.end()
#define X first
#define Y second
#define mkp make_pair
#define pb push_back
#define pob pop_back
#ifdef cold66
#define debug(...) do{\
    fprintf(stderr,"%s - %d (%s) = ",__PRETTY_FUNCTION__,__LINE__,#__VA_ARGS__);\
    _do(__VA_ARGS__);\
}while(0)
template<typename T>void _do(T &&_x){cerr<<_x<<endl;}
template<typename T,typename ...S> void _do(T &&_x,S &&..._t){cerr<<_x<<" ,";_do(_t...);}
template<typename _a,typename _b> ostream& operator << (ostream &_s,const pair<_a,_b> &_p){return _s<<"("<<_p.X<<","<<_p.Y<<")";}
template<typename It> ostream& _OUTC(ostream &_s,It _ita,It _itb)
{
    _s<<"{";
    for(It _it=_ita;_it!=_itb;_it++)
    {
        _s<<(_it==_ita?"":",")<<*_it;
    }
    _s<<"}";
    return _s;
}
template<typename _a> ostream &operator << (ostream &_s,vector<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a> ostream &operator << (ostream &_s,set<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a,typename _b> ostream &operator << (ostream &_s,map<_a,_b> &_c){return _OUTC(_s,ALL(_c));}
template<typename _t> void pary(_t _a,_t _b){_OUTC(cerr,_a,_b);cerr<<endl;}
#define IOS()
#else
#define debug(...)
#define pary(...)
#define endl '\n'
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#endif // cold66
//}

const ll MAXn=1e5+5,MAXlg=__lg(MAXn)+2;
const ll MOD=1000000007;
const ll INF=0x3f3f3f3f3f3f3f3f;

vector<ll> v;
int main(){
  IOS();
  ll n,k,s;
  cin>>n>>k>>s;
  if((n-1)*k<s || s>=500000000000000) return cout<<"NO"<<endl,0;
  cout<<"YES"<<endl;
  // if(s<n){
  //   ll i=2;
  //   while(k>1) k--,cout<<i++<<' ';
  //   cout<<s+1<<endl;
  //   return 0;
  // }
  REP(i,k+1){
    ll x=s-(n-1)*i;
    if(x>n-1) continue;
    ll r=k-i;
    ll all=i;
    if(r==0){
      while(all--){
        if( !SZ(v) ) v.pb(n);
        else if(v.back()==1) v.pb(n);
        else v.pb(1);
      }
      break;
    }
    ll st=ll(ceil((lf)x/(lf)r));
    debug(st,x,r);
    ll t=0;
    ll cnt=0;
    while(t+st<x) t+=st,cnt++;
    ll last=x-t;
    while(all--){
      if( !SZ(v) ) v.pb(n);
      else if(v.back()==1) v.pb(n);
      else v.pb(1);
    }
    debug("hi",cnt);
    if(!SZ(v) || v.back()==1){
      ll now=1;
      while(cnt--) now+=st,v.pb(now);
      v.pb(now+last);
    }
    else{
      ll now=n;
      while(cnt--) now-=st,v.pb(now);
      v.pb(now-last);
    }
    debug("hi",cnt);
    break;
  }
  assert(SZ(v)==k);
  for( ll i:v ) cout<<i<<' ';
  cout<<endl;
}


#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
typedef long long ll;
typedef double lf;
typedef pair<ll,ll> ii;
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define RST(i,n) memset(i,n,sizeof i)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(),a.end()
#define X first
#define Y second
#define mkp make_pair
#define pb push_back
#define pob pop_back
#ifdef cold66
#define debug(...) do{\
    fprintf(stderr,"%s - %d (%s) = ",__PRETTY_FUNCTION__,__LINE__,#__VA_ARGS__);\
    _do(__VA_ARGS__);\
}while(0)
template<typename T>void _do(T &&_x){cerr<<_x<<endl;}
template<typename T,typename ...S> void _do(T &&_x,S &&..._t){cerr<<_x<<" ,";_do(_t...);}
template<typename _a,typename _b> ostream& operator << (ostream &_s,const pair<_a,_b> &_p){return _s<<"("<<_p.X<<","<<_p.Y<<")";}
template<typename It> ostream& _OUTC(ostream &_s,It _ita,It _itb)
{
    _s<<"{";
    for(It _it=_ita;_it!=_itb;_it++)
    {
        _s<<(_it==_ita?"":",")<<*_it;
    }
    _s<<"}";
    return _s;
}
template<typename _a> ostream &operator << (ostream &_s,vector<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a> ostream &operator << (ostream &_s,set<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a,typename _b> ostream &operator << (ostream &_s,map<_a,_b> &_c){return _OUTC(_s,ALL(_c));}
template<typename _t> void pary(_t _a,_t _b){_OUTC(cerr,_a,_b);cerr<<endl;}
#define IOS()
#else
#define debug(...)
#define pary(...)
#define endl '\n'
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#endif // cold66
//}

const ll MAXn=1e5+5,MAXlg=__lg(MAXn)+2;
const ll MOD=1000000007;
const ll INF=0x3f3f3f3f3f3f3f3f;

vector<ll> v;
int main(){
  IOS();
  ll n,k,s;
  cin>>n>>k>>s;
  if((n-1)*k<s || s>=500000000000000) return cout<<"NO"<<endl,0;
  cout<<"YES"<<endl;
  // if(s<n){
  //   ll i=2;
  //   while(k>1) k--,cout<<i++<<' ';
  //   cout<<s+1<<endl;
  //   return 0;
  // }
  REP(i,k+1){
    ll x=s-(n-1)*i;
    if(x>n-1) continue;
    ll r=k-i;
    ll all=i;
    if(r==0){
      while(all--){
        if( !SZ(v) ) v.pb(n);
        else if(v.back()==1) v.pb(n);
        else v.pb(1);
      }
      break;
    }
    ll st=ll(ceil((lf)x/(lf)r));
    debug(st,x,r);
    ll t=0;
    ll cnt=0;
    while(t+st<x) t+=st,cnt++;
    ll last=x-t;
    while(all--){
      if( !SZ(v) ) v.pb(n);
      else if(v.back()==1) v.pb(n);
      else v.pb(1);
    }
    debug("hi",cnt);
    if(!SZ(v) || v.back()==1){
      ll now=1;
      while(cnt--) now+=st,v.pb(now);
      v.pb(now+last);
    }
    else{
      ll now=n;
      while(cnt--) now-=st,v.pb(now);
      v.pb(now-last);
    }
    debug("hi",cnt);
    break;
  }
  for( ll i:v ) cout<<i<<' ';
  cout<<endl;
}


#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
typedef long long ll;
typedef double lf;
typedef pair<ll,ll> ii;
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define RST(i,n) memset(i,n,sizeof i)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(),a.end()
#define X first
#define Y second
#define mkp make_pair
#define pb push_back
#define pob pop_back
#ifdef cold66
#define debug(...) do{\
    fprintf(stderr,"%s - %d (%s) = ",__PRETTY_FUNCTION__,__LINE__,#__VA_ARGS__);\
    _do(__VA_ARGS__);\
}while(0)
template<typename T>void _do(T &&_x){cerr<<_x<<endl;}
template<typename T,typename ...S> void _do(T &&_x,S &&..._t){cerr<<_x<<" ,";_do(_t...);}
template<typename _a,typename _b> ostream& operator << (ostream &_s,const pair<_a,_b> &_p){return _s<<"("<<_p.X<<","<<_p.Y<<")";}
template<typename It> ostream& _OUTC(ostream &_s,It _ita,It _itb)
{
    _s<<"{";
    for(It _it=_ita;_it!=_itb;_it++)
    {
        _s<<(_it==_ita?"":",")<<*_it;
    }
    _s<<"}";
    return _s;
}
template<typename _a> ostream &operator << (ostream &_s,vector<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a> ostream &operator << (ostream &_s,set<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a,typename _b> ostream &operator << (ostream &_s,map<_a,_b> &_c){return _OUTC(_s,ALL(_c));}
template<typename _t> void pary(_t _a,_t _b){_OUTC(cerr,_a,_b);cerr<<endl;}
#define IOS()
#else
#define debug(...)
#define pary(...)
#define endl '\n'
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#endif // cold66
//}

const ll MAXn=1e5+5,MAXlg=__lg(MAXn)+2;
const ll MOD=1000000007;
const ll INF=0x3f3f3f3f3f3f3f3f;

vector<ll> v;
int main(){
  IOS();
  ll n,k,s;
  cin>>n>>k>>s;
  if((n-1)*k<s || s>=500000000000000) return cout<<"NO"<<endl,0;
  cout<<"YES"<<endl;
  // if(s<n){
  //   ll i=2;
  //   while(k>1) k--,cout<<i++<<' ';
  //   cout<<s+1<<endl;
  //   return 0;
  // }
  REP(i,k+1){
    ll x=s-(n-1)*i;
    if(x>n-1) continue;
    ll r=k-i;
    ll all=i;
    if(r==0){
      while(all--){
        if( !SZ(v) ) v.pb(n);
        else if(v.back()==1) v.pb(n);
        else v.pb(1);
      }
      break;
    }
    ll st=ll(ceil((lf)x/(lf)r));
    debug(st,x,r);
    ll t=0;
    ll cnt=0;
    while(t+st<x && r--) t+=st,cnt++;
    // cnt--;
    ll last=x-t;
    while(all--){
      if( !SZ(v) ) v.pb(n);
      else if(v.back()==1) v.pb(n);
      else v.pb(1);
    }
    debug("hi",cnt);
    if(!SZ(v) || v.back()==1){
      ll now=1;
      while(cnt--) now+=st,v.pb(now);
      v.pb(now+last);
    }
    else{
      ll now=n;
      while(cnt--) now-=st,v.pb(now);
      v.pb(now-last);
    }
    debug("hi",cnt);
    break;
  }
  assert(SZ(v)==k);
  for( ll i:v ) cout<<i<<' ';
  cout<<endl;
}


#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
typedef long long ll;
typedef double lf;
typedef pair<ll,ll> ii;
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define RST(i,n) memset(i,n,sizeof i)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(),a.end()
#define X first
#define Y second
#define mkp make_pair
#define pb push_back
#define pob pop_back
#ifdef cold66
#define debug(...) do{\
    fprintf(stderr,"%s - %d (%s) = ",__PRETTY_FUNCTION__,__LINE__,#__VA_ARGS__);\
    _do(__VA_ARGS__);\
}while(0)
template<typename T>void _do(T &&_x){cerr<<_x<<endl;}
template<typename T,typename ...S> void _do(T &&_x,S &&..._t){cerr<<_x<<" ,";_do(_t...);}
template<typename _a,typename _b> ostream& operator << (ostream &_s,const pair<_a,_b> &_p){return _s<<"("<<_p.X<<","<<_p.Y<<")";}
template<typename It> ostream& _OUTC(ostream &_s,It _ita,It _itb)
{
    _s<<"{";
    for(It _it=_ita;_it!=_itb;_it++)
    {
        _s<<(_it==_ita?"":",")<<*_it;
    }
    _s<<"}";
    return _s;
}
template<typename _a> ostream &operator << (ostream &_s,vector<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a> ostream &operator << (ostream &_s,set<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a,typename _b> ostream &operator << (ostream &_s,map<_a,_b> &_c){return _OUTC(_s,ALL(_c));}
template<typename _t> void pary(_t _a,_t _b){_OUTC(cerr,_a,_b);cerr<<endl;}
#define IOS()
#else
#define debug(...)
#define pary(...)
#define endl '\n'
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#endif // cold66
//}

const ll MAXn=1e5+5,MAXlg=__lg(MAXn)+2;
const ll MOD=1000000007;
const ll INF=0x3f3f3f3f3f3f3f3f;

int main(){
  IOS();
  ll n,k,s;
  cin>>n>>k>>s;
  if(s<k || s>(n-1)*k) return cout<<"NO"<<endl,0;
  cout<<"YES"<<endl;
  ll now=1;
  REP(i,k){
    ll dis=min(n-1,s-k+i+1);
    s-=dis;
    if( now==1 ){
      cout<<now+dis;
      now+=dis;
    }
    else{
      cout<<now-dis;
      now-=dis;
    }
    cout<<(i==k-1 ?'\n':' ');
  }
}


#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
typedef long long ll;
typedef double lf;
typedef pair<ll,ll> ii;
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define RST(i,n) memset(i,n,sizeof i)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(),a.end()
#define X first
#define Y second
#define mkp make_pair
#define pb push_back
#define pob pop_back
#ifdef cold66
#define debug(...) do{\
    fprintf(stderr,"%s - %d (%s) = ",__PRETTY_FUNCTION__,__LINE__,#__VA_ARGS__);\
    _do(__VA_ARGS__);\
}while(0)
template<typename T>void _do(T &&_x){cerr<<_x<<endl;}
template<typename T,typename ...S> void _do(T &&_x,S &&..._t){cerr<<_x<<" ,";_do(_t...);}
template<typename _a,typename _b> ostream& operator << (ostream &_s,const pair<_a,_b> &_p){return _s<<"("<<_p.X<<","<<_p.Y<<")";}
template<typename It> ostream& _OUTC(ostream &_s,It _ita,It _itb)
{
    _s<<"{";
    for(It _it=_ita;_it!=_itb;_it++)
    {
        _s<<(_it==_ita?"":",")<<*_it;
    }
    _s<<"}";
    return _s;
}
template<typename _a> ostream &operator << (ostream &_s,vector<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a> ostream &operator << (ostream &_s,set<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a,typename _b> ostream &operator << (ostream &_s,map<_a,_b> &_c){return _OUTC(_s,ALL(_c));}
template<typename _t> void pary(_t _a,_t _b){_OUTC(cerr,_a,_b);cerr<<endl;}
#define IOS()
#else
#define debug(...)
#define pary(...)
#define endl '\n'
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#endif // cold66
//}

const ll MAXn=1e5+5,MAXlg=__lg(MAXn)+2;
const ll MOD=1000000007;
const ll INF=0x3f3f3f3f3f3f3f3f;

vector<ll> v;
int main(){
  IOS();
  ll n,k,s;
  cin>>n>>k>>s;
  if((n-1)*k<s || s>=500000000000000 || s<k) return cout<<"NO"<<endl,0;
  cout<<"YES"<<endl;
  // if(s<n){
  //   ll i=2;
  //   while(k>1) k--,cout<<i++<<' ';
  //   cout<<s+1<<endl;
  //   return 0;
  // }
  REP(i,k+1){
    ll x=s-(n-1)*i;
    if(x>n-1) continue;
    ll r=k-i;
    ll all=i;
    if(r==0){
      while(all--){
        if( !SZ(v) ) v.pb(n);
        else if(v.back()==1) v.pb(n);
        else v.pb(1);
      }
      break;
    }
    r--;
    ll last=x-r;
    debug(last);
    while(all--){
      if( !SZ(v) ) v.pb(n);
      else if(v.back()==1) v.pb(n);
      else v.pb(1);
    }
    if(!SZ(v) || v.back()==1){
      ll now=1;
      // r--;
      while(r--) now++,v.pb(now);
      v.pb(now+last);
    }
    else{
      ll now=n;
      // r--;
      while(r--) now--,v.pb(now);
      v.pb(now-last);
    }
    break;
  }
  debug(SZ(v));
  assert(SZ(v)==k);
  for( ll i:v ) cout<<i<<' ';
  cout<<endl;
}


#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
typedef long long ll;
typedef double lf;
typedef pair<ll,ll> ii;
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(ll i=1;i<=n;i++)
#define RST(i,n) memset(i,n,sizeof i)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(),a.end()
#define X first
#define Y second
#define mkp make_pair
#define pb push_back
#define pob pop_back
#ifdef cold66
#define debug(...) do{\
    fprintf(stderr,"%s - %d (%s) = ",__PRETTY_FUNCTION__,__LINE__,#__VA_ARGS__);\
    _do(__VA_ARGS__);\
}while(0)
template<typename T>void _do(T &&_x){cerr<<_x<<endl;}
template<typename T,typename ...S> void _do(T &&_x,S &&..._t){cerr<<_x<<" ,";_do(_t...);}
template<typename _a,typename _b> ostream& operator << (ostream &_s,const pair<_a,_b> &_p){return _s<<"("<<_p.X<<","<<_p.Y<<")";}
template<typename It> ostream& _OUTC(ostream &_s,It _ita,It _itb)
{
    _s<<"{";
    for(It _it=_ita;_it!=_itb;_it++)
    {
        _s<<(_it==_ita?"":",")<<*_it;
    }
    _s<<"}";
    return _s;
}
template<typename _a> ostream &operator << (ostream &_s,vector<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a> ostream &operator << (ostream &_s,set<_a> &_c){return _OUTC(_s,ALL(_c));}
template<typename _a,typename _b> ostream &operator << (ostream &_s,map<_a,_b> &_c){return _OUTC(_s,ALL(_c));}
template<typename _t> void pary(_t _a,_t _b){_OUTC(cerr,_a,_b);cerr<<endl;}
#define IOS()
#else
#define debug(...)
#define pary(...)
#define endl '\n'
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#endif // cold66
//}

const ll MAXn=1e5+5,MAXlg=__lg(MAXn)+2;
const ll MOD=1000000007;
const ll INF=0x3f3f3f3f3f3f3f3f;

vector<ll> v;
int main(){
  IOS();
  ll n,k,s;
  cin>>n>>k>>s;
  if((n-1)*k<s || s>=500000000000000) return cout<<"NO"<<endl,0;
  cout<<"YES"<<endl;
  // if(s<n){
  //   ll i=2;
  //   while(k>1) k--,cout<<i++<<' ';
  //   cout<<s+1<<endl;
  //   return 0;
  // }
  REP(i,k+1){
    ll x=s-(n-1)*i;
    if(x>n-1) continue;
    ll r=k-i;
    ll all=i;
    if(r==0){
      while(all--){
        if( !SZ(v) ) v.pb(n);
        else if(v.back()==1) v.pb(n);
        else v.pb(1);
      }
      break;
    }
    ll st=ll(floor((lf)x/(lf)r));
    debug(st,x,r);
    // cnt--;
    r--;
    ll last=x-r*st;
    debug(last);
    while(all--){
      if( !SZ(v) ) v.pb(n);
      else if(v.back()==1) v.pb(n);
      else v.pb(1);
    }
    if(!SZ(v) || v.back()==1){
      ll now=1;
      // r--;
      while(r--) now+=st,v.pb(now);
      v.pb(now+last);
    }
    else{
      ll now=n;
      // r--;
      while(r--) now-=st,v.pb(now);
      v.pb(now-last);
    }
    break;
  }
  debug(SZ(v));
  assert(SZ(v)==k);
  for( ll i:v ) cout<<i<<' ';
  cout<<endl;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {

		long long rem = s;
		vector<long long> ans;

		if (s > n) {
			for (int i = 1; i <= k; i++) {
				long long rems = s - i * (n - 1);
				long long remk = k - i;
				if (remk <= rems) {
					if (i % 2 == 1) {
						ans.push_back(n);
						rem = rem - i * (n - 1);
					} else {
						ans.push_back(1);
					}
				} else {
					break;
				}
			}
			while (sz(ans) < k - 1) {
				rem--;
				if (ans[sz(ans) - 1] == n) {
					ans.push_back(n - 1);
				} else if (ans[sz(ans) - 1] == 1) {
					ans.push_back(2);
				} else if (ans[sz(ans) - 1] == n - 1) {
					ans.push_back(n);
				} else if (ans[sz(ans) - 1] == 2) {
					ans.push_back(1);
				}
			}
		} else {
			rem--;
			ans.push_back(2);
			while (sz(ans) < k - 1) {
				rem--;
				if (ans[sz(ans) - 1] == n) {
					ans.push_back(n - 1);
				} else if (ans[sz(ans) - 1] == 1) {
					ans.push_back(2);
				} else if (ans[sz(ans) - 1] == n - 1) {
					ans.push_back(n);
				} else if (ans[sz(ans) - 1] == 2) {
					ans.push_back(1);
				}
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else if(k==1) {
	   cout << "YES" << endl;
	    cout << s+1;
	}
	else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				rem = rem - (i - 1) * (n - 1);
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1
					|| (ans[sz(ans) - 1] == 2 && n > 2)) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {
		int rem = s;
		vector<int> ans;
		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
					rem = rem - i * (n - 1);
				} else {
					ans.push_back(1);
				}
			} else {
				break;
			}
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			} else if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else if(k==1) {
	   cout << "YES" << endl;
	    cout << s-1;
	}
	else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				rem = rem - (i - 1) * (n - 1);
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1
					|| (ans[sz(ans) - 1] == 2 && n > 2)) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
					rem = rem - i * (n - 1);
				} else {
					ans.push_back(1);
				}
			} else {
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			} else if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				rem = rem - i * (n - 1);
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			} else if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else if (k == 1) {
		cout << s+1;
	} else {
		long long rem = s;
		vector<long long> ans;
		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
					rem = rem - i * (n - 1);
				} else {
					ans.push_back(1);
				}
			} else {
				break;
			}
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			} else if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				rem = rem - i * (n - 1);
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				rem = rem - (i-1) * (n - 1);
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else if(k==1) {
	    cout << s-1;
	}
	else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				rem = rem - (i - 1) * (n - 1);
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1
					|| (ans[sz(ans) - 1] == 2 && n > 2)) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {

		long long rem = s;
		vector<long long> ans;

		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
				} else {
					ans.push_back(1);
				}
			} else {
				rem = rem - (i - 1) * (n - 1);
				break;
			}
		}

		if (sz(ans) == 0) {
			ans.push_back(2);
			rem--;
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1
					|| (ans[sz(ans) - 1] == 2 && n > 2)) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}

	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else if (k == 1) {
		cout << s + 1;
	} else {

		long long rem = s;
		vector<long long> ans;

		if (s >= n) {
			for (int i = 1; i <= k; i++) {
				long long rems = s - i * (n - 1);
				long long remk = k - i;
				if (remk <= rems) {
					if (i % 2 == 1) {
						ans.push_back(n);
						rem = rem - i * (n - 1);
					} else {
						ans.push_back(1);
					}
				} else {
					break;
				}
			}

			while (sz(ans) < k - 1) {
				rem--;
				if (ans[sz(ans) - 1] == n) {
					ans.push_back(n - 1);
				} else if (ans[sz(ans) - 1] == 1) {
					ans.push_back(2);
				} else if (ans[sz(ans) - 1] == n - 1) {
					ans.push_back(n);
				} else if (ans[sz(ans) - 1] == 2) {
					ans.push_back(1);
				}
			}
		} else {
			rem--;
			ans.push_back(2);
			while (sz(ans) < k - 1) {
				rem--;
				if (ans[sz(ans) - 1] == n) {
					ans.push_back(n - 1);
				} else if (ans[sz(ans) - 1] == 1) {
					ans.push_back(2);
				} else if (ans[sz(ans) - 1] == n - 1) {
					ans.push_back(n);
				} else if (ans[sz(ans) - 1] == 2) {
					ans.push_back(1);
				}
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else {
		long long rem = s;
		vector<long long> ans;
		for (int i = 1; i <= k; i++) {
			long long rems = s - i * (n - 1);
			long long remk = k - i;
			if (remk <= rems) {
				if (i % 2 == 1) {
					ans.push_back(n);
					rem = rem - i * (n - 1);
				} else {
					ans.push_back(1);
				}
			} else {
				break;
			}
		}

		while (sz(ans) < k - 1) {
			rem--;
			if (ans[sz(ans) - 1] == n) {
				ans.push_back(n - 1);
			} else if (ans[sz(ans) - 1] == 1) {
				ans.push_back(2);
			} else if (ans[sz(ans) - 1] == n - 1) {
				ans.push_back(n);
			} else if (ans[sz(ans) - 1] == 2) {
				ans.push_back(1);
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define sz(v) (int) v.size()
#define all(v) v.begin(),v.end()
#define in freopen("important.in","r",stdin)
#define out freopen("output.txt","w",stdout)
#define ios  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define MOD 1000000007

int main() {

	long long n, k, s;

	cin >> n >> k >> s;

	if ((n - 1) * k < s || k > s) {
		cout << "NO";
	} else if (k == 1) {
		cout << s + 1;
	} else {

		long long rem = s;
		vector<long long> ans;

		if (s > n) {
			for (int i = 1; i <= k; i++) {
				long long rems = s - i * (n - 1);
				long long remk = k - i;
				if (remk <= rems) {
					if (i % 2 == 1) {
						ans.push_back(n);
						rem = rem - i * (n - 1);
					} else {
						ans.push_back(1);
					}
				} else {
					break;
				}
			}

			while (sz(ans) < k - 1) {
				rem--;
				if (ans[sz(ans) - 1] == n) {
					ans.push_back(n - 1);
				} else if (ans[sz(ans) - 1] == 1) {
					ans.push_back(2);
				} else if (ans[sz(ans) - 1] == n - 1) {
					ans.push_back(n);
				} else if (ans[sz(ans) - 1] == 2) {
					ans.push_back(1);
				}
			}
		} else {
			rem--;
			ans.push_back(2);
			while (sz(ans) < k - 1) {
				rem--;
				if (ans[sz(ans) - 1] == n) {
					ans.push_back(n - 1);
				} else if (ans[sz(ans) - 1] == 1) {
					ans.push_back(2);
				} else if (ans[sz(ans) - 1] == n - 1) {
					ans.push_back(n);
				} else if (ans[sz(ans) - 1] == 2) {
					ans.push_back(1);
				}
			}
		}

		cout << "YES" << endl;

		for (int i = 0; i < sz(ans); i++) {
			cout << ans[i] << " ";
		}

		if (sz(ans) == k - 1) {
			if (ans[sz(ans) - 1] == 1 || ans[sz(ans) - 1] == 2) {
				cout << ans[sz(ans) - 1] + rem;
			} else {
				cout << ans[sz(ans) - 1] - rem;
			}
		}
	}
	return 0;
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,DIV,mod;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    DIV = (s + k - 1)/k;
    mod = DIV * k - s;
    if (DIV >= n || k == 1 || DIV == 0){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES" << '\n';
    if (mod == 0) {
        fo(i,1,k) if (i & 1) cout << 1 + DIV <<' ';
        else cout << 1 << ' ';
        exit(0);
    }
    fo(i,1,k-1) if (i & 1) cout << 1 + DIV <<' ';
    else cout << 1 << ' ';
    if (k % 2 == 0) cout << 1 + mod;
    else cout << 1 + DIV - mod;
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,DIV,mod;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    DIV = (s + k - 1)/k;
    mod = DIV * k - s;
    if (DIV >= n || k == 1 || DIV == 0){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES" << '\n';
    fo(i,1,k-1) if (i & 1) cout << 1 + DIV <<' ';
    else cout << 1 << ' ';
    if (k % 2 == 0) cout << 1 + mod;
    else cout << 1 + DIV - mod;
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,DIV,mod;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    DIV = (s + k - 1)/k;
    mod = s - DIV * (k-1);
    if (DIV >= n || k == 1 || DIV == 0){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES" << '\n';
    fo(i,1,k-1) if (i & 1) cout << 1 + DIV <<' ';
    else cout << 1 << ' ';
    if (k & 1) cout << 1 + mod;
    else cout << 1 + DIV - mod;
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,a,b,c,dau,cuoi,mid;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    if ((n-1) * k < s || s < k){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES\n";
    dau = 1;cuoi = k - 1;
    while (dau <= cuoi){
        mid = dau + cuoi >> 1;
        if (mid * (n - 2) < s - k + 1){
            a = mid;
            dau = mid + 1;
        }else cuoi = mid - 1;
    }
    c = k - 1 - a;
    b = s - a * (n - 1) - c;
    fo(i,1,a) if (i & 1) cout << n <<' ';
    else cout << 1 << ' ';
    if (a & 1) cout << n - b <<' ';
    else cout << 1 + b <<' ';
    if (a & 1) {
        fo(i,1,c) if (i & 1) cout << n - b + 1 <<' ';
        else cout << n - b << ' ';
    }else{
        fo(i,1,c) if (i & 1) cout << b <<' ';
        else if (b == 1) cout << b + 1 << ' ';
        else cout << b - 1 << ' ';
    }
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,a,b,c,dau,cuoi,mid;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    if ((n-1) * k < s || s < k){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES\n";
    dau = 1;cuoi = k - 1;
    while (dau <= cuoi){
        mid = dau + cuoi >> 1;
        if (mid * (n - 2) < s - k + 1){
            a = mid;
            dau = mid + 1;
        }else cuoi = mid - 1;
    }
    c = k - 1 - a;
    b = s - a * (n - 1) - c;
    fo(i,1,a) if (i & 1) cout << n <<' ';
    else cout << 1 << ' ';
    if (a & 1) cout << n - b <<' ';
    else cout << 1 + b <<' ';
    if (a & 1) {
        fo(i,1,c) if (i & 1) cout << n - b + 1 <<' ';
        else cout << 1 + b - 1 << ' ';
    }else{
        fo(i,1,c) if (i % 2 == 0) cout << n - b + 1 <<' ';
        else cout << 1 + b - 1 << ' ';
    }
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,a,b,c,dau,cuoi,mid;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    if ((n-1) * k < s || s < k){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES\n";
    dau = 1;cuoi = k - 1;
    while (dau <= cuoi){
        mid = dau + cuoi >> 1;
        if (mid * (n - 2) < s - k + 1){
            a = mid;
            dau = mid + 1;
        }else cuoi = mid - 1;
    }
    c = k - 1 - a;
    b = s - a * (n - 1) - c;
    cout << a << ' ' << b << ' ' << c << '\n';
    fo(i,1,a) if (i & 1) cout << n <<' ';
    else cout << 1 << ' ';
    if (a & 1) cout << n - b <<' ';
    else cout << 1 + b <<' ';
    if (a & 1) {
        fo(i,1,c) if (i & 1) cout << n - b + 1 <<' ';
        else cout << n - b << ' ';
    }else{
        fo(i,1,c) if (i & 1) cout << b <<' ';
        else cout << b - 1 << ' ';
    }
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,DIV,mod;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    DIV = (s + k - 1)/k;
    mod = DIV * k - s;
    if (DIV >= n || k == 1){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES" << '\n';
    fo(i,1,k-1) if (i & 1) cout << 1 + DIV <<' ';
    else cout << 1 << ' ';
    if (k % 2 == 0) cout << 1 + mod;
    else cout << 1 + DIV - mod << '\n';
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,DIV,mod;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    DIV = s/k;
    mod = s - (k-1) * DIV;
    if (DIV >= n || k == 1 || DIV == 0){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES" << '\n';
    fo(i,1,k-1) if (i & 1) cout << 1 + DIV <<' ';
    else cout << 1 << ' ';
    if (k & 1) cout << 1 + mod;
    else cout << 1 + DIV - mod;
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include    <bits/stdc++.h>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define rep(i,a,b)  for(int i=(a);i<(b);++i)
#define fore(i,a)  for(__typeof((a).begin()) i=(a).begin();i!=(a).end();++i)
#define __unique(V) (V).resize(unique((V).begin(),(V).end())-(V).begin())
#define cntbit(X)   __builtin_popcount((X))
#define bit(S,i) (((S)>>(i-1))&1)
#define fi  first
#define se  second
#define LL  long long
#define ii  pair<int,int>
#define iii pair<int,ii>
#define TASK "1015D"
using   namespace   std;
LL n,k,s,a,b,c,dau,cuoi,mid;
///--------------------------
void    solve(){
    cin >> n >> k >> s;
    if ((n-1) * k < s || s < k){
        cout << "NO\n";
        exit(0);
    }
    cout << "YES\n";
    dau = 1;cuoi = k - 1;
    while (dau <= cuoi){
        mid = dau + cuoi >> 1;
        if (mid * (n - 2) < s - k + 1){
            a = mid;
            dau = mid + 1;
        }else cuoi = mid - 1;
    }
    c = k - 1 - a;
    b = s - a * (n - 1) - c;
    fo(i,1,a) if (i & 1) cout << n <<' ';
    else cout << 1 << ' ';
    if (a & 1) cout << n - b <<' ';
    else cout << 1 + b <<' ';
    if (a & 1) {
        fo(i,1,c) if (i & 1) cout << n - b + 1 <<' ';
        else cout << n - b << ' ';
    }else{
        fo(i,1,c) if (i & 1) cout << b <<' ';
        else cout << b - 1 << ' ';
    }
}
///--------------------------
int     main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    #ifndef ONLINE_JUDGE
    	freopen(TASK".inp", "r", stdin);
    	freopen(TASK".out", "w", stdout);
    #endif //ONLINE_JUDGE
    solve();
}


#include<bits/stdc++.h>
using namespace std;
const int M = 2e5 + 50;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define mst(a,b) memset(a,b,sizeof(a))

vector<long long> ans;
int main() {
	long long n,s,k,sum = 0,last;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(k*(n-1) < s || s < k) {
		return puts("NO"),0;
	}
	puts("YES");
	bool f = 1,ff = 1;
	while(sum + n < s) {
		if(f)
			printf("%lld ",n),last = n;
		else
			printf("%d ",1),last = 1;
		sum += (n - 1);
		f ^= 1;
		k --;
	}
	if(!f) { // last == n
		rep(i,2,k) {
			if(ff) printf("%d ",n-1),last = n-1;
			else   printf("%d ",n),last = n;
			ff ^= 1;
			sum ++;
		}
	} else {
		rep(i,2,k) {
			if(ff) printf("%d ",2),last = 2;
			else   printf("%d ",1),last = 1;
			ff ^= 1;
			sum ++;
		}
	}
//	printf("--------%lld\n",(s - sum));
	if(last <= 2 && last + (s - sum) <= n)
		printf("%lld",last + (s - sum));
	else
		printf("%lld",last - (s - sum));
}


#include<bits/stdc++.h>
using namespace std;
const int M = 2e5 + 50;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define mst(a,b) memset(a,b,sizeof(a))

vector<long long> ans;
bool cmp(long long a,long long b) {
	return a > b;
}
int main() {
	long long n,s,k,sum = 0,l = 1;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(k*(n-1) < s || s < k) {
		return puts("NO"),0;
	}
	puts("YES");
	rep(i,1,k-1) {
		if(s > n)
			ans.push_back(n-1),s -= n-1;
		else
			ans.push_back(1),s--;
	}
	ans.push_back(s);
	sort(ans.begin(),ans.end(),cmp);
	for(auto it:ans) {
		if(l + it <= n)
			l += it;
		else
			l -= it;
		printf("%lld ",l);
	}
}


#include<iostream>
using namespace std;
int main()
{
    long long n,k,s,r,m,p=1,f=1,d;
	cin>>n>>k>>s;
	if(s<k||s>(n-1)*k)
	{
		cout<<"NO";
		return 0;
	}
	cout<<"YES"<<endl;
	r=s%k;
	m=s/k;
	while(s>0)
	{
		d=s/k;
		if(s%k!=0)
			d++;
		p=p+(d*f);
		cout<<p<<' ';
		f*=-1;
		s-=d;
		k--;
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main() {
	long long n,k,s;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(s < k || s > (n-1)*k) {
		return puts("NO"),0;
	}
	puts("YES");
	long long f = 1,d,p = 1;
	while(s > 0) {
		d = s / k + (s % k != 0);
		printf("%d ",p += (d*f));
		f *= -1;
		s -=  d;
		k --;
	}
}


#include<bits/stdc++.h>
using namespace std;
const int M = 2e5 + 50;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define mst(a,b) memset(a,b,sizeof(a))

vector<long long> ans;
int main() {
	long long n,s,k,sum = 0,last;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(k*(n-1) < s || s < k) {
		return puts("NO"),0;
	}
	puts("YES");
	bool f = 1,ff = 1;
	while(sum + (n-1) < s) {
		if(f)
			printf("%lld ",n),last = n;
		else
			printf("%d ",1),last = 1;
		sum += (n - 1);
		f ^= 1;
		k --;
	}
	if(!f) { // last == n
		rep(i,2,k) {
			if(ff) printf("%d ",n-1),last = n-1;
			else   printf("%d ",n),last = n;
			ff ^= 1;
			sum ++;
		}
	} else {
		rep(i,2,k) {
			if(ff) printf("%d ",2),last = 2;
			else   printf("%d ",1),last = 1;
			ff ^= 1;
			sum ++;
		}
	}
//	printf("--------%lld\n",(s - sum));
	if(last <= 2 && last + (s - sum) <= n)
		printf("%lld",last + (s - sum));
	else
		printf("%lld",last - (s - sum));
}


#include<bits/stdc++.h>
using namespace std;
const int M = 2e5 + 50;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define mst(a,b) memset(a,b,sizeof(a))

int main() {
	long long n,s,k,sum = 0,lst,last;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(k*(n-1) < s) {
		return puts("NO"),0;
	}
	puts("YES");
	bool f = 1,ff = 1;
	while(sum + (n-1) < s) {
		if(f)
			printf("%lld ",n),last = n;
		else
			printf("%d ",1),last = 1;
		sum += (n - 1);
		f ^= 1;
		k --;
	}
	if(!f) { // last == n
		rep(i,2,k) {
			if(ff) printf("%d ",n-1),last = n-1;
			else   printf("%d ",n),last = n;
			ff ^= 1;
			sum ++;
		}
	} else {
		rep(i,2,k) {
			if(ff) printf("%d ",2),last = 2;
			else   printf("%d ",1),last = 1;
			ff ^= 1;
			sum ++;
		}
	}
//	printf("--------%lld\n",(s - sum));
	if(last <= 2 && last + (s - sum) <= n)
		printf("%lld",last + (s - sum));
	else
		printf("%lld",last - (s - sum));
}


#include<bits/stdc++.h>
using namespace std;
const int M = 2e5 + 50;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
#define mst(a,b) memset(a,b,sizeof(a))

vector<long long> ans;
bool cmp(long long a,long long b) {
	return a > b;
}
int main() {
	long long n,s,k,l = 1;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(k*(n-1) < s || s < k) {
		return puts("NO"),0;
	}
	puts("YES");
	long long res;
	per(i,n,0) {
		if(s - i*(n - 1) >= (k - i)) {
			res = i;
			break;
		}
	}
	rep(i,1,res) ans.push_back(n-1);
	rep(i,1,k-res-1) ans.push_back(1);
	if(s != res * (n-1))ans.push_back(s - ((n-1)*res) - (k-res-1));
	sort(ans.begin(),ans.end(),cmp);
	for(auto it:ans) {
		if(l + it <= n)
			l += it;
		else
			l -= it;
		printf("%lld ",l);
	}
}


#include<bits/stdc++.h>
using namespace std;
const int M = 2e5 + 50;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
#define mst(a,b) memset(a,b,sizeof(a))

vector<long long> ans;
bool cmp(long long a,long long b) {
	return a > b;
}
int main() {
	long long n,s,k,l = 1;
	scanf("%lld %lld %lld",&n,&k,&s);
	if(k*(n-1) < s || s < k) {
		return puts("NO"),0;
	}
	puts("YES");
	long long res;
	per(i,n,0) {
		if(s - i*(n - 1) >= (k - i)) {
			res = i;
			break;
		}
	}
	rep(i,1,res) ans.push_back(n-1);
	rep(i,1,k-res-1) ans.push_back(1);
	ans.push_back(s - ((n-1)*res) - (k-res-1));
	sort(ans.begin(),ans.end(),cmp);
	for(auto it:ans) {
		if(l + it <= n)
			l += it;
		else
			l -= it;
		printf("%lld ",l);
	}
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k ){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){
                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                }
                else{
                    v.pb( 1 + ( s - k )) ;
                    t = 1 ;
                    sav = 1 + ( s - k ) ;
                }
                s -= ( s - k ) ;
                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        while(k--){
            if( t == 1 ){
                v.pb( 1 + sav ) ;
                t = 0 ;
            }
            else{
                t = 1 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k ){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n < k ){
                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                    s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        if( sav == n ){
            while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }
        else{
            while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }

        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > n){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        if( sav == n-1){
            while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }
        else{
            while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }

        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1< k ){
                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        if( sav == n-1){
            while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }
        else{
            while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }

        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k ){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        ll sav = ( s + s%2 ) / k ;
        vector < ll > v ;
        int t = 0 ;
        while(k--){
            if( s < sav && t == 0){
                v.pb( 1 + s ) ;
                break ;
            }
            else if( s < sav && t == 1){
                v.pb( sav - s + 1) ;
                break;
            }
            if( t == 0 )
                v.pb( 1 + sav ) , t = 1;
            else
                v.pb( 1 ) , t = 0 ;
            s -= sav ;

        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        if( sav == n-1){
            while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }
        else{
            while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }

        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k ){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                }
                else{
                    v.pb( 1 + ( s - k )) ;
                    t = 1 ;
                    sav = 1 + ( s - k ) ;
                }
                s -= ( s - k ) ;
                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        while(k--){
            if( t == 0 ){
                v.pb( 1 + sav ) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n < k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        if( sav == n-1){
            while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }
        else{
            while(k--){
            if( t == 0 ){
                v.pb(  sav + 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        }

        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k ){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        int t = 0 ;
        int sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){
                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                }
                else{
                    v.pb( 1 + ( s - k )) ;
                    t = 1 ;
                    sav = 1 + ( s - k ) ;
                }
                s -= ( s - k ) ;
                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        while(k--){
            if( t == 1 ){
                v.pb( 1 + sav ) ;
                t = 0 ;
            }
            else{
                t = 1 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include <bits/stdc++.h>

#define bug(x) cout << #x << " = " << x << endl;
#define fr(a) freopen(a,"r",stdin);
#define fw(a) freopen(a,"w",stdout);
#define tc() int tc;cin >> tc; for (int _tc=1;_tc<=tc;_tc++)
#define up(i,l,r) for (int i=l;i<=r;i++)
#define down(i,r,l) for (int i=r;i>=l;i--)
#define rep(i,l,r) for (int i=l;i<r;i++)
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long int ll;
typedef unsigned long long int llu;
typedef pair<ll,ll> ii;
int main()
{
    ll n , k , s ;
    cin >> n >> k >> s ;
    if( s > ( n - 1 ) * k || k > s){
        cout << "NO" ;
    }
    else{
        cout << "YES" << endl ;
        vector < ll > v ;
        ll t = 0 ;
        ll sav = 0 ;
        while(k--){
            if( s - n - 1 <= k ){

                if( t == 1 )
                {
                    v.pb( n - ( s - k )) ;
                    t = 0 ;
                    sav = n - ( s - k ) ;
                     s -= ( s - k ) ;
                }
                else{
                    v.pb( 1 + min( n - 1 , (s - k ) ) ) ;
                    t = 1 ;
                    sav = 1 + min( n - 1 , (s - k ) ) ;
                    s -= min( n - 1 , (s - k ) ) ;
                }

                break ;
            }
            if( t == 0 && s > n)
                v.pb( n ) , t = 1 ;
            else if( t == 1 && s > n)
                v.pb( 1 ) , t = 0 ;
            s -= ( n - 1 ) ;
        }
        t = 0 ;
        while(k--){
            if( t == 0 ){
                v.pb(  sav - 1) ;
                t = 1 ;
            }
            else{
                t = 0 ;
                v.pb( sav ) ;
            }
        }
        rep( i , 0 , v.size() )
        cout << v[i] << " " ;
    }
    return 0;
}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    while(scanf("%lld%lld%lld",&n,&m,&s)!=EOF){
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                    a[i]=n;
        }

    long long ans=m*(n-1);
    int i=1;
    while(ans>s)
    {
        a[i]=2;
        ans-=2*(n-2);
        i+=2;
    }
    if(ans<s)
        {
            i-=2;
            while(ans<s)
            {
                a[i]+=1;
                ans+=2;
            }
    //printf("%lld",ans);
        }
        if(ans>s)
            {
                if(m%2==0)
                    a[m]+=1;
                else
                    {
                       a[m]-=1;
                       //a[m-1]+=1;
                       //a[1]+=1;
                    }
            }

    printf("YES\n");
            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);
    }
}


//#include<cstdio>
//#include<cstring>
//using namespace std;
//
//int a[200005];
//int main()
//{
//    long long n,m,s;
//    scanf("%lld%lld%lld",&n,&m,&s);
//    if(m*(n-1)<s)
//    {
//        printf("NO\n");
//        return 0;
//    }
//    if(m>s)
//    {
//        printf("NO\n");
//        return 0;
//    }
//    printf("YES\n");
//
//    for(int i=1;i<=m;i++)
//        {
//                if(i%2==0)
//                    a[i]=1;
//                else
//                    a[i]=n;
//        }
//
//    long long ans=m*(n-1);
//    while(ans>s)
//    {
//
//    }
//
//
//
//            for(int i=1;i<=m;i++)
//            printf("%d ",a[i]);
//
//}
#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    scanf("%lld%lld%lld",&n,&m,&s);
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }
    printf("YES\n");
    long long ans=s/m+1;

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                a[i]=ans;
            }

    long long yu=s%m;
    if(yu%2==0)
    {
            for(int i=1;i<=yu;i+=2)
                a[i]+=1;
    }
    else
    {
        yu=yu+1;
            for(int i=1;i<=yu;i+=2)
                a[i]+=1;
            a[m]+=1;

    }

            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);

}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    while(scanf("%lld%lld%lld",&n,&m,&s)!=EOF){
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                    a[i]=n;
        }

    long long ans=m*(n-1);
    int i=1;
    while(ans>s)
    {
        a[i]=2;
        ans-=2*(n-2);
        i+=2;
    }
    if(ans<s)
        {
            i-=2;
            while(ans<s)
            {
                a[i]+=1;
                ans+=2;
            }
    //printf("%lld",ans);
        }
        if(ans>s)
            {
                if(m%2==0)
                    a[m]+=1;
                else
                    {
                       printf("NO\n");
        return 0;
                    }
            }

    printf("YES\n");
            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);
    }
}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    while(scanf("%lld%lld%lld",&n,&m,&s)!=EOF){
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                    a[i]=n;
        }

    long long ans=m*(n-1);
    int i=1;
    while(ans>s)
    {
        a[i]=2;
        ans-=2*(n-2);
        i+=2;
    }
    if(ans<s)
        {
            i-=2;
            while(ans<s)
            {
                a[i]+=1;
                ans+=2;
            }
    //printf("%lld",ans);
        }
        if(ans>s)
            {
                if(m%2==0)
                    a[m]+=1;
                else
                    {
                       a[m]-=1;
                       a[m-1]+=1;
                       a[1]+=1;
                    }
            }

    printf("YES\n");
            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);
    }
}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    scanf("%lld%lld%lld",&n,&m,&s);
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }
    printf("YES\n");

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                    a[i]=n;
        }

    long long ans=m*(n-1);
    int i=1;
    while(ans>s)
    {
        a[i]=2;
        ans-=2*(n-2);
        i+=2;
    }
    if(ans<s)
        {
            i-=2;
            while(ans<s)
            {
                a[i]+=1;
                ans+=2;
            }
    //printf("%lld",ans);
        }
        if(ans>s)
            a[m]+=1;

            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);

}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    while(scanf("%lld%lld%lld",&n,&m,&s)!=EOF){
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                    a[i]=n;
        }

    long long ans=m*(n-1);
    int i=1;
    while(ans>s)
    {
        a[i]=2;
        if(i!=m)
        ans-=2*(n-2);
        else
            ans-=(n-2);
        i+=2;
    }
//    for(int i=1;i<=m;i++)
//            printf("%d ",a[i]);
//            printf("\n");
    if(ans<s)
        {
            i-=2;
            while(ans<s)
            {
                a[i]+=1;
                if(i!=m)
                ans+=2;
                else
                    ans+=1;
            }
    //printf("%lld\n",ans);
        }
//        for(int i=1;i<=m;i++)
//            printf("%d ",a[i]);
//            printf("\n");
        if(ans>s)
            {
                if(m%2==0)
                    a[m]+=1;
                else
                    {
                       a[m]-=1;
                       //a[m-1]+=1;
                       //a[1]+=1;
                    }
            }

    printf("YES\n");
            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);
    }
}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    while(scanf("%lld%lld%lld",&n,&m,&s)!=EOF){
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                    a[i]=n;
        }

    long long ans=m*(n-1);
    int i=1;
    while(ans>s)
    {
        a[i]=2;
        ans-=2*(n-2);
        i+=2;
    }
    if(ans<s)
        {
            i-=2;
            while(ans<s)
            {
                a[i]+=1;
                ans+=2;
            }
    //printf("%lld",ans);
        }
        if(ans>s)
            {
                if(m%2==0)
                    a[m]+=1;
                else
                    {
                       a[m]-=1;
                       a[1]+=1;
                    }
            }

    printf("YES\n");
            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);
    }
}


#include<cstdio>
#include<cstring>
using namespace std;

int a[200005];
int main()
{
    long long n,m,s;
    scanf("%lld%lld%lld",&n,&m,&s);
    if(m*(n-1)<s)
    {
        printf("NO\n");
        return 0;
    }
    if(m>s)
    {
        printf("NO\n");
        return 0;
    }
    printf("YES\n");
    long long ans=s/m+1;

    for(int i=1;i<=m;i++)
        {
                if(i%2==0)
                    a[i]=1;
                else
                a[i]=ans;
            }

    long long yu=s%m;
    if(yu%2==0)
    {
        yu/=2;
        if(m%2==0)
        {
            for(int i=1;i<=yu;i++)
                a[m-2*(i-1)-1]+=1;
        }
        else
            for(int i=1;i<=yu;i++)
                a[m-2*(i-1)]+=1;
    }
    else
    {
    //printf("%d ",m%2);
        yu=(yu+1)/2;
        if(m%2==0)
        {//printf("A");
            for(int i=1;i<=yu;i++)
                a[m-2*(i-1)-1]+=1;
            a[m]+=1;
        }
        else
        {
            for(int i=1;i<=yu;i++)
                a[m-2*(i-1)]+=1;
                a[m]+=1;
        }
    }

            for(int i=1;i<=m;i++)
            printf("%d ",a[i]);

}


#include<bits/stdc++.h>
#include<list>
#include<algorithm>
#define ll long long int
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define rep(a,b,c) for(a=b;a<c;a++)
#define repj(a,b,c) for(a=b;a<c;a++)
#define repr for(i=n-1;i>=0;i--)
#define pii pair<ll,ll>
#define pll pair<ll, ll>
#define inf 100000001
const double pie  =3.141592653589793238463;
#define mod 1000000007
#define modp 998244353
#define lb lower_bound
#define up upper_bound
#define rep1 for(i=1;i<=n;i++)
#define vr vector
#define ef else if
#define all(x) (x).begin(), (x).end()
#define SORT(A) sort(A.begin(), A.end());
#define REVERSE(A) reverse(A.begin(), A.end());
#define lenth length()
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll myXOR(unsigned long long int x, unsigned long long int y)
{
    return (x|y)&(~x|~y);
}
ll powerLL(ll x, ll n)
{
    ll result = 1;
    while (n) {
        if (n & 1)
            result = result * x % mod;
        n = n / 2;
        x = x * x % mod;
    }

    return result;
}
int n, k, s, pos=1;
int mindist, maxdist;

int main()
{
    cin>>n>>k>>s;
    mindist=k;
    maxdist=(n-1)*k;
    if(s<mindist || s>maxdist)
    {
        cout<<"NO";
        return 0;
    }
    cout<<"YES"<<endl;
    for(int i=k-1;i>=0;i--)
    {
        int minleave=i;
        int cur=min(s-minleave, n-1);
        s-=cur;
        if(pos+cur<=n)
        {
            pos+=cur;
            cout<<pos<<" ";
        }
        else
        {
            pos-=cur;
            cout<<pos<<" ";
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#include<list>
#include<algorithm>
#define ll long long int
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define rep(a,b,c) for(a=b;a<c;a++)
#define repj(a,b,c) for(a=b;a<c;a++)
#define repr for(i=n-1;i>=0;i--)
#define pii pair<ll,ll>
#define pll pair<ll, ll>
#define inf 100000001
const double pie  =3.141592653589793238463;
#define mod 1000000007
#define lb lower_bound
#define up upper_bound
#define rep1 for(i=1;i<=n;i++)
#define vr vector
#define ef else if
#define all(x) (x).begin(), (x).end()
#define SORT(A) sort(A.begin(), A.end());
#define REVERSE(A) reverse(A.begin(), A.end());
#define lenth length()
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll myXOR(unsigned long long int x, unsigned long long int y)
{
    return (x|y)&(~x|~y);
}
ll powerLL(ll x, ll n)
{
    ll result = 1;
    while (n) {
        if (n & 1)
            result = result * x % mod;
        n = n / 2;
        x = x * x % mod;
    }
    return result;
}
int main()
{
     //fastio
    ll t,n,m,i,j,k,l,x,y,z,a,b,c,d,e,p,nl,np,q,r;
    string s1,s2,s3,s4;
    ll sum1=0,sum2=0;
    ll s;
    cin>>n>>t>>s;
    if((n-1)*t<s)
    {
        cout<<"NO"<<endl;
    }
    else
    {
        cout<<"YES"<<endl;
        x=s/(n-1);
        while((s-((n-1)*x))<t-x)
        {
            x--;
        }
        ll ans=1;
        ll f=1;
        t=t-x;
        y=x;
        while(y--)
        {
            if(f==1)
            {
                ans=ans+(n-1);
                cout<<ans<<" ";
                f*=-1;
            }
            else
            {
               ans=ans-(n-1);
               cout<<ans<<" ";
               f*=-1;
            }

        }
        s=s-(n-1)*x;
        t--;
        if(t<0){
            t=0;
            return 0;

        }
        // cout<<t<<endl;
        // return 0;
        while(t--)
        {
            if(ans+1<=n && f==1)
            {
                ans++;
                f*=-1;
                cout<<ans<<" ";

            }
            else if((ans-1)>=1 && f==-1)
            {
                ans--;
                f*=-1;
                cout<<ans<<" ";
            }
            s--;
        }
        if(ans+s<=n)
        {
            cout<<ans+s<<" ";
        }
        else
        {
            cout<<ans-s<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<list>
#include<algorithm>
#define ll long long int
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define rep(a,b,c) for(a=b;a<c;a++)
#define repj(a,b,c) for(a=b;a<c;a++)
#define repr for(i=n-1;i>=0;i--)
#define pii pair<ll,ll>
#define pll pair<ll, ll>
#define inf 100000001
const double pie  =3.141592653589793238463;
#define mod 1000000007
#define modp 998244353
#define lb lower_bound
#define up upper_bound
#define rep1 for(i=1;i<=n;i++)
#define vr vector
#define ef else if
#define all(x) (x).begin(), (x).end()
#define SORT(A) sort(A.begin(), A.end());
#define REVERSE(A) reverse(A.begin(), A.end());
#define lenth length()
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll myXOR(unsigned long long int x, unsigned long long int y)
{
    return (x|y)&(~x|~y);
}
ll powerLL(ll x, ll n)
{
    ll result = 1;
    while (n) {
        if (n & 1)
            result = result * x % mod;
        n = n / 2;
        x = x * x % mod;
    }

    return result;
}
ll n, k, s, pos=1;
ll mindist, maxdist;

int main()
{
    cin>>n>>k>>s;
    mindist=k;
    maxdist=(n-1)*k;
    if(s<mindist || s>maxdist)
    {
        cout<<"NO";
        return 0;
    }
    cout<<"YES"<<endl;
    for(int i=k-1;i>=0;i--)
    {
        int minleave=i;
        int cur=min(s-minleave, n-1);
        s-=cur;
        if(pos+cur<=n)
        {
            pos+=cur;
            cout<<pos<<" ";
        }
        else
        {
            pos-=cur;
            cout<<pos<<" ";
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#include<list>
#include<algorithm>
#define ll long long int
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define rep(a,b,c) for(a=b;a<c;a++)
#define repj(a,b,c) for(a=b;a<c;a++)
#define repr for(i=n-1;i>=0;i--)
#define pii pair<ll,ll>
#define pll pair<ll, ll>
#define inf 100000001
const double pie  =3.141592653589793238463;
#define mod 1000000007
#define modp 998244353
#define lb lower_bound
#define up upper_bound
#define rep1 for(i=1;i<=n;i++)
#define vr vector
#define ef else if
#define all(x) (x).begin(), (x).end()
#define SORT(A) sort(A.begin(), A.end());
#define REVERSE(A) reverse(A.begin(), A.end());
#define lenth length()
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll myXOR(unsigned long long int x, unsigned long long int y)
{
    return (x|y)&(~x|~y);
}
ll powerLL(ll x, ll n)
{
    ll result = 1;
    while (n) {
        if (n & 1)
            result = result * x % mod;
        n = n / 2;
        x = x * x % mod;
    }

    return result;
}
#include <bits/stdc++.h>
using namespace std;

#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define endl "\n"
#define int long long

const int N=1e5+5;

ll n, k, s, pos=1;
ll mindist, maxdist;

int main()
{
    IOS;
    cin>>n>>k>>s;
    mindist=k;
    maxdist=(n-1)*k;
    if(s<mindist || s>maxdist)
    {
        cout<<"NO";
        return 0;
    }
    cout<<"YES"<<endl;
    for(int i=k-1;i>=0;i--)
    {
        int minleave=i;
        int cur=min(s-minleave, n-1);
        s-=cur;
        if(pos+cur<=n)
        {
            pos+=cur;
            cout<<pos<<" ";
        }
        else
        {
            pos-=cur;
            cout<<pos<<" ";
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#include<list>
#include<algorithm>
#define ll long long int
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define rep(a,b,c) for(a=b;a<c;a++)
#define repj(a,b,c) for(a=b;a<c;a++)
#define repr for(i=n-1;i>=0;i--)
#define pii pair<ll,ll>
#define pll pair<ll, ll>
#define inf 100000001
const double pie  =3.141592653589793238463;
#define mod 1000000007
#define lb lower_bound
#define up upper_bound
#define rep1 for(i=1;i<=n;i++)
#define vr vector
#define ef else if
#define all(x) (x).begin(), (x).end()
#define SORT(A) sort(A.begin(), A.end());
#define REVERSE(A) reverse(A.begin(), A.end());
#define lenth length()
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll myXOR(unsigned long long int x, unsigned long long int y)
{
    return (x|y)&(~x|~y);
}
ll powerLL(ll x, ll n)
{
    ll result = 1;
    while (n) {
        if (n & 1)
            result = result * x % mod;
        n = n / 2;
        x = x * x % mod;
    }
    return result;
}
const int N=1e5+5;
int n, k, s, pos=1;
int mindist, maxdist;
int main()
{
    cin>>n>>k>>s;
    mindist=k;
    maxdist=(n-1)*k;
    if(s<mindist || s>maxdist)
    {
        cout<<"NO";
        return 0;
    }
    cout<<"YES"<<endl;
    for(int i=k-1;i>=0;i--)
    {
        int minn=i;
        // cout<<minn<<" "<<s-minn<<endl;
        int cur=min(s-minn, n-1);
        s-=cur;
        if(pos+cur<=n)
        {
            pos+=cur;
            cout<<pos<<" ";
        }
        else
        {
            pos-=cur;
            cout<<pos<<" ";
        }
        // cout<<endl;
    }
    return 0;
}