#include<bits/stdc++.h>
#include<iostream>
#include <sstream>
#include<string>
#include <vector>
#include <stack>
#include<math.h>
#include<algorithm>
#define ll long long int
#define ld long long double
#define PI 3.14159265
using namespace std;
int main(){
	ll n,x,y;
	cin>>n>>x>>y;
	if(y<n){
	cout<<"-1";
	}
	else if(y>=n){
		ll t = y-(n-1);
		ll ans = pow(t,2)+(n-1);
		if(ans<x){
			cout<<"-1";
		}
		else {
			cout<<t<<"\n";
			for(ll p=0;p<n-1;p++){
				cout<<1<<"\n";
			}
		}
	}
}


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

#define boost ios::sync_with_stdio(false);cin.tie(NULL)
#define ll long long
#define ull unsigned long long
#define pll pair<ll,ll>
#define pb push_back
#define mp make_pair
#define fs first
#define sc second
const ll MOD=1E9+7;

int main()
{
    boost;
    if(fopen("inp.txt", "r")) {
      freopen("inp.txt", "r", stdin);
      freopen("outp.txt", "w", stdout);
    }

    ll n,x,y;

    cin>>n>>x>>y;

    ll i,val=n-1+(y-n+1)*(y-n+1);

    if (val>=x && y>=n-1) {

    	for (i=0;i<n-1;i++)
    		cout<<"1\n";

    	cout<<y-n+1;
    }
    else
    	cout<<-1;

    return 0;
}


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

#define boost ios::sync_with_stdio(false);cin.tie(NULL)
#define ll long long
#define ull unsigned long long
#define pll pair<ll,ll>
#define pb push_back
#define mp make_pair
#define fs first
#define sc second
const ll MOD=1E9+7;

int main()
{
    boost;
    if(fopen("inp.txt", "r")) {
      freopen("inp.txt", "r", stdin);
      freopen("outp.txt", "w", stdout);
    }

    ll n,x,y;

    cin>>n>>x>>y;

    ll i,val=n-1+(y-n+1)*(y-n+1);

    if (val>=x && y>n-1) {

    	for (i=0;i<n-1;i++)
    		cout<<"1\n";

    	cout<<y-n+1;
    }
    else
    	cout<<-1;

    return 0;
}


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

#define boost ios::sync_with_stdio(false);cin.tie(NULL)
#define ll long long
#define ull unsigned long long
#define pll pair<ll,ll>
#define pb push_back
#define mp make_pair
#define fs first
#define sc second
const ll MOD=1E9+7;

int main()
{
    boost;
    if(fopen("inp.txt", "r")) {
      freopen("inp.txt", "r", stdin);
      freopen("outp.txt", "w", stdout);
    }

    ll n,x,y;

    cin>>n>>x>>y;

    ll i,val=n-1+(y-n+1)*(y-n+1);

    if (val>=x) {

    	for (i=0;i<n-1;i++)
    		cout<<"1\n";

    	cout<<y-n+1;
    }
    else
    	cout<<-1;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int n, x, y;
    cin >> n >> x >> y;
    if(y - (n-1) <= 0){
        cout << "-1\n";
        return 0;
    }
    vector<long long int> arr(n);
    long long int sum = 0;
    arr[0] = y - (n-1);
    sum += (arr[0] * arr[0]);
    for(int i = 1; i < n; i++){
        arr[i] = 1;
        sum += 1;
    }
    if(sum < x){
        cout << "-1\n";
        return 0;
    }
    for(int i = 0; i < n; i++){
        cout << arr[i] << "\n";
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int n, x, y;
    cin >> n >> x >> y;
    if(x < y){
        cout << "-1\n";
        return 0;
    }
    vector<long long int> arr(n);
    long long int sum = 0;
    arr[0] = y - (n-1);
    sum += (arr[0] * arr[0]);
    for(int i = 1; i < n; i++){
        arr[i] = 1;
        sum += 1;
    }
    if(sum < x){
        cout << "-1\n";
        return 0;
    }
    for(int i = 0; i < n; i++){
        cout << arr[i] << "\n";
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int n, x, y;
    cin >> n >> x >> y;
    if(x < y || y - (n-1) <= 0){
        cout << "-1\n";
        return 0;
    }
    vector<long long int> arr(n);
    long long int sum = 0;
    arr[0] = y - (n-1);
    sum += (arr[0] * arr[0]);
    for(int i = 1; i < n; i++){
        arr[i] = 1;
        sum += 1;
    }
    if(sum < x){
        cout << "-1\n";
        return 0;
    }
    for(int i = 0; i < n; i++){
        cout << arr[i] << "\n";
    }
    return 0;
}


#include <bits/stdc++.h>

using namespace std;

long long n, a, b;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> a >> b;
    long long k = n - 1 + (b - n + 1) * (b - n + 1);
    if (k < a) cout << -1;
    else
    {
        for (int i = 1; i < n; i++)
            cout << 1 << '\n';
        cout << b - n + 1;
    }
}


#include <bits/stdc++.h>

using namespace std;

long long n, a, b;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> a >> b;
    long long k = n - 1 + (b - n + 1) * (b - n + 1);
    if (k < a || n > b) cout << -1;
    else
    {
        for (int i = 1; i < n; i++)
            cout << 1 << '\n';
        cout << b - n + 1;
    }
}


/*
By Snickeen.
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

LL t,n,m,ans,x,y;

int main()
{
	LL i,j,k,l,u,v;
	scanf("%I64d%I64d%I64d",&n,&x,&y);
	u=y-n+1;
	if(u*u+n-1<x)return 0*puts("-1");
	printf("%I64d\n",u);
	while(--n)puts("1");
	return 0;
}


/*
By Snickeen.
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

LL t,n,m,ans,x,y;

int main()
{
	LL i,j,k,l,u,v;
	scanf("%I64d%I64d%I64d",&n,&x,&y);
	u=y-n+1;
	if(u<=0||u*u+n-1<x)return 0*puts("-1");
	printf("%I64d\n",u);
	while(--n)puts("1");
	return 0;
}


/*
By Snickeen.
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

LL t,n,m,ans,x,y;

int main()
{
	LL i,j,k,l,u,v;
	scanf("%I64d%I64d%I64d",&n,&x,&y);
	u=y-n+1;
	if(u<0||u*u+n-1<x)return 0*puts("-1");
	printf("%I64d\n",u);
	while(--n)puts("1");
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int

int main(){
  ll n,x,y;
  cin >> n >> x >> y;

  ll i = 1;
  while (i*i+(n-1) < x) i++;

  if (n > y || i+(n-1) > y) cout << "-1" << endl;
  else {
    cout << i << endl;
    for(i=1;i<=n-1;i++)
	 cout << "1" << endl;
  }
  return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	ll i,j,n,x,y;
    cin>>n>>x>>y;
    x-=(n-1);
	if(x<=0)
	{
		cout<<"-1\n";
		return 0;
	}
	i=1;
	while(i*i<x){
		i++;
	}
	if(n-1+i>y || n>y){
		cout<<"-1\n";
		return 0;
	}
	for(j=1;j<=n-1;j++)
	cout<<"1\n";
	cout<<i;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	ll i,j,n,x,y,sum;
    cin>>n>>x>>y;
    for(i=1;i<=n-1;i++)
    {
    	sum+=1;
    	x--;
	}
	if(x<=0)
	{
		cout<<"-1\n";
		return 0;
	}
	sum+=x*x;
	if(sum<y)
	{
		cout<<"-1\n";
		return 0;
	}
	for(i=1;i<=n-1;i++)
	cout<<"1\n";
	cout<<x;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	ll i,j,n,x,y,sum;
    cin>>n>>x>>y;
    sum=(n-1);
    x-=(n-1);
	if(x<=0)
	{
		cout<<"-1\n";
		return 0;
	}
	i=1;
	while(i*i<x){
		i++;
	}
	if(sum+i>y){
		cout<<"-1\n";
		return 0;
	}
	for(j=1;j<=n-1;j++)
	cout<<"1\n";
	cout<<i;
}


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

typedef long long int ll;
typedef pair<int,int> pi;
priority_queue<pi, vector<pi>, greater<pi> > pq; //min heap

ll mini(ll a,ll b){	return a<b?a:b;}
ll maxi(ll a,ll b){	return a>b?a:b;}
ll gcd(ll a,ll b){	if(b == 0)	return a;return gcd(b,a%b);}
ll binpow(ll n,ll x){	ll ans = 1;while(x){if(x & 1)	ans *= n;n *= n;x >>= 1;}return ans;}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    ll n,x,y;
    cin>>n>>x>>y;
    ll num = y - (n-1);
    if(num*num + n-1 < x)   cout<<-1<<"\n";
    else{
        cout<<num*num<<"\n";
        for(int i=0;i<n-1;++i)  cout<<1<<"\n";
    }

    return 0;
}


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

typedef long long int ll;
typedef pair<int,int> pi;
priority_queue<pi, vector<pi>, greater<pi> > pq; //min heap

ll mini(ll a,ll b){	return a<b?a:b;}
ll maxi(ll a,ll b){	return a>b?a:b;}
ll gcd(ll a,ll b){	if(b == 0)	return a;return gcd(b,a%b);}
ll binpow(ll n,ll x){	ll ans = 1;while(x){if(x & 1)	ans *= n;n *= n;x >>= 1;}return ans;}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    ll n,x,y;
    cin>>n>>x>>y;
    ll num = y - (n-1);
    if(n > y || num*num + n-1 < x)   cout<<-1<<"\n";
    else{
        cout<<num<<"\n";
        for(int i=0;i<n-1;++i)  cout<<1<<"\n";
    }

    return 0;
}


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

typedef long long int ll;
typedef pair<int,int> pi;
priority_queue<pi, vector<pi>, greater<pi> > pq; //min heap

ll mini(ll a,ll b){	return a<b?a:b;}
ll maxi(ll a,ll b){	return a>b?a:b;}
ll gcd(ll a,ll b){	if(b == 0)	return a;return gcd(b,a%b);}
ll binpow(ll n,ll x){	ll ans = 1;while(x){if(x & 1)	ans *= n;n *= n;x >>= 1;}return ans;}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    ll n,x,y;
    cin>>n>>x>>y;
    ll num = y - (n-1);
    if(num*num + n-1 < x)   cout<<-1<<"\n";
    else{
        cout<<num<<"\n";
        for(int i=0;i<n-1;++i)  cout<<1<<"\n";
    }

    return 0;
}


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

typedef long long int ll;
typedef pair<int,int> pi;
priority_queue<pi, vector<pi>, greater<pi> > pq; //min heap

ll mini(ll a,ll b){	return a<b?a:b;}
ll maxi(ll a,ll b){	return a>b?a:b;}
ll gcd(ll a,ll b){	if(b == 0)	return a;return gcd(b,a%b);}
ll binpow(ll n,ll x){	ll ans = 1;while(x){if(x & 1)	ans *= n;n *= n;x >>= 1;}return ans;}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    ll n,x,y;
    cin>>n>>x>>y;
    ll num = y - (n-1);
    if(n > x || n > y || num*num + n-1 < x)   cout<<-1<<"\n";
    else{
        cout<<num<<"\n";
        for(int i=0;i<n-1;++i)  cout<<1<<"\n";
    }

    return 0;
}


#include<iostream>
using namespace std;
typedef long long int ll;
int main()
{
	ll n,x,y;
	cin>>n>>x>>y;
	if(y<n)
	return cout<<"-1\n",0;
	ll sum = (n-1) + (y-(n-1))*(y-(n-1));
	if(sum<x)
	return cout<<"-1\n",0;
	for(int i=0;i<n-1;i++)
	cout<<"1\n";
	cout<<(y-(n-1))<<"\n";
}


#include<iostream>
using namespace std;
typedef long long int ll;
int main()
{
	ll n,x,y;
	cin>>n>>x>>y;
	ll ptr=-1;
	for(ll i=y;i>=n;i--)
	{
		ll sum = (i*(i+1))/2-((i-n)*(i-n+1))/2;
		if(sum<=y && sum*sum>=x)
		{
			ptr=i;
			break;
		}
	}
	if(ptr==-1)
	return cout<<"-1\n",0;
	for(ll i=ptr;i>ptr-n;i--)
	cout<<i<<"\n";
}


#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <functional>

using namespace std;
using namespace __gnu_pbds;

#define pb push_back
#define mp make_pair
#define scanInt(n) scanf("%d", &n)
#define fileInput freopen("in.txt", "r", stdin)
#define fileOutput freopen("out.txt", "w", stdout)
#define ll long long

typedef pair<int, int> pi;
typedef vector<int> vi;
typedef vector<float> vf;
typedef vector<double> vd;

typedef tree<int, null_type, less<int>, rb_tree_tag,
            tree_order_statistics_node_update>
        new_data_set;

const int MOD = 1000000007;
const int inf = 1 << 30;
ll power(ll x){return x*x;}

int main(){
    int n;
    ll x, y;
    cin >> n;
    cin >> x >> y;

    ll s = n-1;
    s = y - s;
    if(power(s) < x){
        cout << -1 << endl;
        return 0;
    }

    for(int i = 1; i < n; i++)
        cout << 1 << endl;
    cout << s << endl;

    return 0;

}


#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <functional>

using namespace std;
using namespace __gnu_pbds;

#define pb push_back
#define mp make_pair
#define scanInt(n) scanf("%d", &n)
#define fileInput freopen("in.txt", "r", stdin)
#define fileOutput freopen("out.txt", "w", stdout)
#define ll long long

typedef pair<int, int> pi;
typedef vector<int> vi;
typedef vector<float> vf;
typedef vector<double> vd;

typedef tree<int, null_type, less<int>, rb_tree_tag,
            tree_order_statistics_node_update>
        new_data_set;

const int MOD = 1000000007;
const int inf = 1 << 30;
ll power(ll x){return x*x;}

int main(){
    int n;
    ll x, y;
    cin >> n;
    cin >> x >> y;

    ll s = n-1;
    s = y-s;

    if(power(s) + (n-1) < x || s <= 0) {
        //cout << s << " " <<  power(s) << endl;
        cout << -1 << endl;
        return 0;
    }

    for(int i = 1; i < n; i++)
        cout << 1 << endl;
    cout << s << endl;

    return 0;

}


#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <functional>

using namespace std;
using namespace __gnu_pbds;

#define pb push_back
#define mp make_pair
#define scanInt(n) scanf("%d", &n)
#define fileInput freopen("in.txt", "r", stdin)
#define fileOutput freopen("out.txt", "w", stdout)
#define ll long long

typedef pair<int, int> pi;
typedef vector<int> vi;
typedef vector<float> vf;
typedef vector<double> vd;

typedef tree<int, null_type, less<int>, rb_tree_tag,
            tree_order_statistics_node_update>
        new_data_set;

const int MOD = 1000000007;
const int inf = 1 << 30;
ll power(ll x){return x*x;}

int main(){
    int n;
    ll x, y;
    cin >> n;
    cin >> x >> y;

    ll s = n-1;
    s = abs(y-s);
    if(power(s) + (n-1) < x || s + n -1 > y) {
        //cout << s << " " <<  power(s) << endl;
        cout << -1 << endl;
        return 0;
    }

    for(int i = 1; i < n; i++)
        cout << 1 << endl;
    cout << s << endl;

    return 0;

}


#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <functional>

using namespace std;
using namespace __gnu_pbds;

#define pb push_back
#define mp make_pair
#define scanInt(n) scanf("%d", &n)
#define fileInput freopen("in.txt", "r", stdin)
#define fileOutput freopen("out.txt", "w", stdout)
#define ll long long

typedef pair<int, int> pi;
typedef vector<int> vi;
typedef vector<float> vf;
typedef vector<double> vd;

typedef tree<int, null_type, less<int>, rb_tree_tag,
            tree_order_statistics_node_update>
        new_data_set;

const int MOD = 1000000007;
const int inf = 1 << 30;
ll power(ll x){return x*x;}

int main(){
    int n;
    ll x, y;
    cin >> n;
    cin >> x >> y;

    ll s = n-1;
    s = y - s;
    if(power(s) + (n-1) < x){
        //cout << s << " " <<  power(s) << endl;
        cout << -1 << endl;
        return 0;
    }

    for(int i = 1; i < n; i++)
        cout << 1 << endl;
    cout << s << endl;

    return 0;

}


/*In the name of ALLAH*/
#include <bits/stdc++.h>
#include <string.h>
#define ll long long
#define f first
#define s second
#define ull unsigned ll
using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    ll n,x,y;
    cin>>n>>x>>y;
    ll ans=0;
    for(ll i=1;i<=y;i++){
        if(i*i>=x){ans=i;break;}
    }
    ll nn=n-1;
    ll xx=0;
    while(nn--){
        xx++;
   }
   xx+=ans;
   if(xx<=y){
        n--;
   cout<<ans<<endl;
    while(n--){
        cout<<1<<endl;
    }
    return 0;
   }
   cout<<-1<<endl;
    return 0;
}
// 2 300 100 200 0 300


/*In the name of ALLAH*/
#include <bits/stdc++.h>
#include <string.h>
#define ll long long
#define f first
#define s second
#define ull unsigned ll
using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    ll n,x,y;
    cin>>n>>x>>y;
    ll ans=0;
    for(ll i=1;i<=y;i++){
        if(i*i>=x){ans=i;break;}
    }
    ll nn=n-1;
    ll xx=0;
    while(nn--){
        xx++;
   }
   xx+=ans;
   if(xx-1==y)ans--,xx--;
   if(xx<=y){
    if(ans*ans+(xx-ans)<x)return puts("-1");
   if(!ans)return cout<<-1<<endl,0;
   cout<<ans<<endl;
   n--;
    while(n--){
        cout<<1<<endl;
    }
    return 0;
   }
   cout<<-1<<endl;
    return 0;
}
// 2 300 100 200 0 300


/*In the name of ALLAH*/
#include <bits/stdc++.h>
#include <string.h>
#define ll long long
#define f first
#define s second
#define ull unsigned ll
using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    ll n,x,y;
    cin>>n>>x>>y;
    ll ans=0;
    for(ll i=1;i<=y;i++){
        if(i*i>=x){ans=i;break;}
    }
    ll nn=n-1;
    ll xx=0;
    while(nn--){
        xx++;
   }
   xx+=ans;
   if(xx-1==y)ans--,xx--;
   if(xx<=y){
    if(ans*ans+(xx-ans)<x)return puts("-1");
   cout<<ans<<endl;
   n--;
    while(n--){
        cout<<1<<endl;
    }
    return 0;
   }
   cout<<-1<<endl;
    return 0;
}
// 2 300 100 200 0 300


#include<bits/stdc++.h>
using namespace std;
#define fr(i,n)  for(int i = 0;i<n;++i)
#define fri(i,a,b) for(int i= a;i<=b;++i)
#define fro(i,a,b) for(int i= a;i>=b;--i)
#define debug(P) cout<<#P<<" = "<<P<<endl;
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define fi first
#define se second
#define pb(x) push_back(x)
#define  mp(x,y) make_pair(x,y)
#define endl  "\n"
#define  ii  pair<int,int>
#define  LL  long long
LL sum;
LL n,x,y,ans = 0;
LL multiply(LL r){
	 return r*r;
}
bool bsearch(LL mid){
	 if(multiply(mid) >= x-(n-1))return true;
	 return false;
}
int main(){
	cin>>n>>x>>y;
	if(x < n || y<n){
		 cout<<-1<<endl;
		 return 0;
	}

	LL lo = 1,hi = x-(n-1);
	while(lo<=hi){
		 LL mid = lo+(hi-lo)/2;
		 if(bsearch(mid)){
		 	  hi = mid-1;
		 	  ans = mid;
		 }
		 else{
		 	 lo = mid+1;
		 }
	}
	if(ans == 0 || ans>(y-(n-1))){
		 cout<<-1;
		 return 0;
	}
	for(int i=0;i<n-1;++i){
		cout<<1<<endl;
	}
	cout<<ans<<endl;
}


#include<bits/stdc++.h>
using namespace std;
#define fr(i,n)  for(int i = 0;i<n;++i)
#define fri(i,a,b) for(int i= a;i<=b;++i)
#define fro(i,a,b) for(int i= a;i>=b;--i)
#define debug(P) cout<<#P<<" = "<<P<<endl;
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define fi first
#define se second
#define pb(x) push_back(x)
#define  mp(x,y) make_pair(x,y)
#define endl  "\n"
#define  ii  pair<int,int>
#define  LL  long long
LL sum;
LL n,x,y,ans = 0;
LL multiply(LL r){
	 return r*r;
}
LL floorSqrt(LL x)
{
    if (x == 0 || x == 1)
    return x;
    LL i = 1, result = 1;
    while (result <= x)
    {
      i++;
      result = i * i;
    }
    return i - 1;
}
bool bsearch(LL mid){
	 if(multiply(mid) >= x-(n-1))return true;
	 return false;
}
int main(){
	cin>>n>>x>>y;
	if(x < n || y<n){
		 cout<<-1<<endl;
		 return 0;
	}

	LL lo = 1;
	LL hi = floorSqrt(x)+1;
	while(lo<=hi){
		 LL mid = lo+(hi-lo)/2;
		 if(bsearch(mid)){
		 	  hi = mid-1;
		 	  ans = mid;
		 }
		 else{
		 	 lo = mid+1;
		 }
	}
	if(ans == 0 || ans>(y-(n-1))){
		 cout<<-1;
		 return 0;
	}
	for(int i=0;i<n-1;++i){
		cout<<1<<endl;
	}
	cout<<ans<<endl;
}


#include<bits/stdc++.h>
using namespace std;
#define fr(i,n)  for(int i = 0;i<n;++i)
#define fri(i,a,b) for(int i= a;i<=b;++i)
#define fro(i,a,b) for(int i= a;i>=b;--i)
#define debug(P) cout<<#P<<" = "<<P<<endl;
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define fi first
#define se second
#define pb(x) push_back(x)
#define  mp(x,y) make_pair(x,y)
#define endl  "\n"
#define  ii  pair<int,int>
#define  LL  long long
LL sum;
LL n,x,y,ans = 0;
LL multiply(LL r){
	 return r*r;
}
LL floorSqrt(LL x)
{
    if (x == 0 || x == 1)
    return x;
    LL i = 1, result = 1;
    while (result <= x)
    {
      i++;
      result = i * i;
    }
    return i - 1;
}
bool bsearch(LL mid){
	 if(multiply(mid) >= x-(n-1))return true;
	 return false;
}
int main(){
	cin>>n>>x>>y;

	LL lo = 1;
	LL hi = floorSqrt(x)+1;
	while(lo<=hi){
		 LL mid = lo+(hi-lo)/2;
		 if(bsearch(mid)){
		 	  hi = mid-1;
		 	  ans = mid;
		 }
		 else{
		 	 lo = mid+1;
		 }
	}
	if(ans == 0 || ans>(y-(n-1))){
		 cout<<-1;
		 return 0;
	}
	for(int i=0;i<n-1;++i){
		cout<<1<<endl;
	}
	cout<<ans<<endl;
}


#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <cstring>
#include <cmath>
#include <stdio.h>
#include <time.h>
using namespace std;
#define sqr(z) (z) * (z)
#define ch_NO(x) cout << "NO\n"; x = 1 - x;
#define b_NO cout << "NO\n"; break;
#define r_NO cout << "NO\n"; return 0;
#define c_NO cout << "NO\n"; continue;
#define ch_YES(x) cout << "YES\n"; x = 1 - x;
#define b_YES cout << "YES\n"; break;
#define r_YES cout << "YES\n"; return 0;
#define c_YES cout << "YES\n"; continue;
#define sz size()
#define pb push_back
#define int_ "%d",
#define fi first
#define se second
#define mm(k) memset((k), -1, sizeof(k));
#define all(k) (k).begin(), (k).end()
#define forn(i, n) for (int (i) = 0; (i) != (n); i++)
#define nfor(i, n) for (int (i) = (n) - 1; (i) != -1; i--)
#define do_nothing cout << " Work_Error ";
#define erace erase
#define incert insert
#define reverce reverse
#define re return
#define pre pre1234
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef long long ll;
typedef double ld;
typedef pair<ll, ll> lpii;
const int INF = 1e9;
const ll INFLL = 1e18 + 1;
const int MAX = 200001;
const ll MOD = 1000000007;
ll inq(ll k, ll q)
{
    if (q == 0)
        return 1;
    ll l = inq(k, q / 2);
    if (q % 2 == 0)
        return l * l % MOD;
    else
        return (l * l) % MOD * k % MOD;
}
ll gcd(ll a, ll b)
{
    if (a < b)
        swap(a, b);
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
ll cubr(ll a)
{
    ll l = -1, r = 1e6 + 2;
    while (l < r - 1)
    {
        ll mid = (l + r) / 2;
        if (mid * mid * mid > a)
            r = mid;
        else
            l = mid;
    }
    return l;
}
ll max(ll a, ll b)
{
    if (a > b)
        return a;
    return b;
}
ll possible(ll q)
{
    if (q == INF)
        return -1;
    return q;
}
bool correct(int x, int xx)
{
    if (x < 0)
        return 0;
    if (x >= xx)
        return 0;
    return 1;
}
ll dsumm(ll x, ll k)
{
    ll y = 1;
    ll z = 0;
    for (int i = 0; y < 1e18; i++)
    {
        z += x / y % k;
        y *= k;
    }
    return z;
}
ll dcount(ll x)
{
    ll y = 1;
    ll z = 0;
    int c[100];
    for (int i = 0; i < 10; i++)
    c[i] = 0;
    for (int i = 0; x > 0; i++)
    {
        if (c[x / y % 10] == 0)
        z++;
        c[x / y % 10] = 1;
        x /= 10;
    }
    return z;
}
ll lg10(ll x)
{
    if (x == 0)
        return 0;
    return lg10(x / 10) + 1;
}

#define bitcount __builtin_popcount
#define bitcountl __builtin_popcountll

#define RA(n, arr) cin >> n; forn(i, n) cin >> (arr)[i];
#define WA(n, arr) cout << n << "\n"; forn(i, n) cout << (arr)[i] << " ";
#define WWA(n, arr) forn(i, n) cout << (arr)[i] << " ";
#define RSA(n, arr) cin >> n; forn(i, n) cin >> (arr)[i]; sort(arr, arr + n);
#define WSA(n, arr) cout << n << "\n"; sort(arr, arr + n); forn(i, n) cout << (arr)[i] << " ";
#define WWSA(n, arr) sort(arr, arr + n); forn(i, n) cout << (arr)[i] << " ";
#define WSV(vec) cout << vec.size() << "\n"; sort(all(vec)); forn(i, vec.sz) cout << (vec)[i] << " ";
#define WWSV(vec) sort(all(vec)); forn(i, vec.sz) cout << (vec)[i] << " ";

#define cnks(l) for (int i = 0; i < l; i++) cnk[i][0] = 1; for (int i = 0; i < l; i++) cnk[0][i] = 1; for (int i = 0; i < l; i++) for (int j = 1; j < i; j++) cnk[i][j] = cnk[i - 1][j] + cnk[i - 1][j - 1];
#define facts(l) fact[0] = 1; for (int i = 1; i < l; i++) fact[i] = fact[i - 1] * i;
#define stirling_2s(l) stirling_2[0][0] = 1; for (int i = 1; i < l; i++) stirling_2[i][0] = 0; for (int i = 0; i < l; i++) for (int j = 1; j <= i; j++) stirling_2[i][j] = stirling_2[i - 1][j - 1] + j * stirling_2[i - 1][j];

//string months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
//int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//vi cx, cy;
//______________________
ll n, x, y;
ll a[900000];
int main()
{
    //freopen("in.in", "r", stdin);
    //freopen("out.out", "w", stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    cin >> n >> x >> y;
    a[0] = y - n + 1;
    if (n > y)
    {
        cout << -1;
        re 0;
    }
    for (int i = 1; i < n; i++)
    {
        a[i] = 1;
    }
    ll r = 0;
    for (int i = 0; i < n; i++)
    {
        r = r + a[i] * a[i];
    }
    if (r < x)
    {
        cout << -1;
    }
    else
    {
        forn(i, n)
        {
            cout << a[i] << " ";
        }
    }
}


#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <cstring>
#include <cmath>
#include <stdio.h>
#include <time.h>
using namespace std;
#define sqr(z) (z) * (z)
#define ch_NO(x) cout << "NO\n"; x = 1 - x;
#define b_NO cout << "NO\n"; break;
#define r_NO cout << "NO\n"; return 0;
#define c_NO cout << "NO\n"; continue;
#define ch_YES(x) cout << "YES\n"; x = 1 - x;
#define b_YES cout << "YES\n"; break;
#define r_YES cout << "YES\n"; return 0;
#define c_YES cout << "YES\n"; continue;
#define sz size()
#define pb push_back
#define int_ "%d",
#define fi first
#define se second
#define mm(k) memset((k), -1, sizeof(k));
#define all(k) (k).begin(), (k).end()
#define forn(i, n) for (int (i) = 0; (i) != (n); i++)
#define nfor(i, n) for (int (i) = (n) - 1; (i) != -1; i--)
#define do_nothing cout << " Work_Error ";
#define erace erase
#define incert insert
#define reverce reverse
#define re return
#define pre pre1234
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef long long ll;
typedef double ld;
typedef pair<ll, ll> lpii;
const int INF = 1e9;
const ll INFLL = 1e18 + 1;
const int MAX = 200001;
const ll MOD = 1000000007;
ll inq(ll k, ll q)
{
    if (q == 0)
        return 1;
    ll l = inq(k, q / 2);
    if (q % 2 == 0)
        return l * l % MOD;
    else
        return (l * l) % MOD * k % MOD;
}
ll gcd(ll a, ll b)
{
    if (a < b)
        swap(a, b);
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
ll cubr(ll a)
{
    ll l = -1, r = 1e6 + 2;
    while (l < r - 1)
    {
        ll mid = (l + r) / 2;
        if (mid * mid * mid > a)
            r = mid;
        else
            l = mid;
    }
    return l;
}
ll max(ll a, ll b)
{
    if (a > b)
        return a;
    return b;
}
ll possible(ll q)
{
    if (q == INF)
        return -1;
    return q;
}
bool correct(int x, int xx)
{
    if (x < 0)
        return 0;
    if (x >= xx)
        return 0;
    return 1;
}
ll dsumm(ll x, ll k)
{
    ll y = 1;
    ll z = 0;
    for (int i = 0; y < 1e18; i++)
    {
        z += x / y % k;
        y *= k;
    }
    return z;
}
ll dcount(ll x)
{
    ll y = 1;
    ll z = 0;
    int c[100];
    for (int i = 0; i < 10; i++)
    c[i] = 0;
    for (int i = 0; x > 0; i++)
    {
        if (c[x / y % 10] == 0)
        z++;
        c[x / y % 10] = 1;
        x /= 10;
    }
    return z;
}
ll lg10(ll x)
{
    if (x == 0)
        return 0;
    return lg10(x / 10) + 1;
}

#define bitcount __builtin_popcount
#define bitcountl __builtin_popcountll

#define RA(n, arr) cin >> n; forn(i, n) cin >> (arr)[i];
#define WA(n, arr) cout << n << "\n"; forn(i, n) cout << (arr)[i] << " ";
#define WWA(n, arr) forn(i, n) cout << (arr)[i] << " ";
#define RSA(n, arr) cin >> n; forn(i, n) cin >> (arr)[i]; sort(arr, arr + n);
#define WSA(n, arr) cout << n << "\n"; sort(arr, arr + n); forn(i, n) cout << (arr)[i] << " ";
#define WWSA(n, arr) sort(arr, arr + n); forn(i, n) cout << (arr)[i] << " ";
#define WSV(vec) cout << vec.size() << "\n"; sort(all(vec)); forn(i, vec.sz) cout << (vec)[i] << " ";
#define WWSV(vec) sort(all(vec)); forn(i, vec.sz) cout << (vec)[i] << " ";

#define cnks(l) for (int i = 0; i < l; i++) cnk[i][0] = 1; for (int i = 0; i < l; i++) cnk[0][i] = 1; for (int i = 0; i < l; i++) for (int j = 1; j < i; j++) cnk[i][j] = cnk[i - 1][j] + cnk[i - 1][j - 1];
#define facts(l) fact[0] = 1; for (int i = 1; i < l; i++) fact[i] = fact[i - 1] * i;
#define stirling_2s(l) stirling_2[0][0] = 1; for (int i = 1; i < l; i++) stirling_2[i][0] = 0; for (int i = 0; i < l; i++) for (int j = 1; j <= i; j++) stirling_2[i][j] = stirling_2[i - 1][j - 1] + j * stirling_2[i - 1][j];

//string months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
//int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//vi cx, cy;
//______________________
ll n, x, y;
ll a[900000];
int main()
{
    //freopen("in.in", "r", stdin);
    //freopen("out.out", "w", stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    cin >> n >> x >> y;
    a[0] = y - n + 1;
    for (int i = 1; i < n; i++)
    {
        a[i] = 1;
    }
    ll r = 0;
    for (int i = 0; i < n; i++)
    {
        r = r + a[i] * a[i];
    }
    if (r < x)
    {
        cout << -1;
    }
    else
    {
        forn(i, n)
        {
            cout << a[i] << " ";
        }
    }
}


#include <bits/stdc++.h>
using namespace std;
#define lli            long long int
#define ulli           unsigned long long int
#define li             long int
#define ff(i,a,b)      for(int i=a;i<=b;i++)
#define fb(i,b,a)      for(int i=b;i>=a;i--)
#define w(t)           while(--t >= 0)
#define l(s)           s.length()
#define ci(n)          cin>>n;
#define fast           ios_base::sync_with_stdio(false);
#define sa(a,n)        sort(a,a+n)
#define sv(v)          sort(v.begin(),v.end())
#define cy             cout<<"YES\n"
#define cn             cout<<"NO\n"
#define nl             cout<<"\n"
#define minus          cout<<"-1\n";
#define vi             vector<int>
#define pb             push_back
#define tc             int t; cin>>t;
#define pp             pair<int,int>
#define input(a,n)     for(int i=0;i<n;i++) cin>>a[i];
#define mod            1000000007
#define co(n)          cout<<n;

int main()
{
    fast
    int n,y;
    ulli x;
    cin>>n>>x>>y;
    if(n == 1)
    {
        if(y*y >= x)
        {
            cout<<y;
            return 0;
        }
        else
        {
            cout<<"-1";
            return 0;
        }
    }
    if(n == y)
    {
        if(y >= x)
        {
            ff(i,1,n)
            {
                cout<<"1";
                nl;
            }
        }
        else
        {
            cout<<"-1";
        }
        return 0;
    }
    ulli max_sum = 0;
    max_sum += n-1;
    y = y - n + 1;
    max_sum += y*y;
    if(max_sum > x)
    {
        while(--n > 0)
        {
            cout<<"1";
            nl;
        }
        cout<<y;
    }
    else
    {
        cout<<"-1";
    }
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define lli            long long int
#define ulli           unsigned long long int
#define li             long int
#define ff(i,a,b)      for(int i=a;i<=b;i++)
#define fb(i,b,a)      for(int i=b;i>=a;i--)
#define w(t)           while(--t >= 0)
#define l(s)           s.length()
#define ci(n)          cin>>n;
#define fast           ios_base::sync_with_stdio(false);
#define sa(a,n)        sort(a,a+n)
#define sv(v)          sort(v.begin(),v.end())
#define cy             cout<<"YES\n"
#define cn             cout<<"NO\n"
#define nl             cout<<"\n"
#define minus          cout<<"-1\n";
#define vi             vector<int>
#define pb             push_back
#define tc             int t; cin>>t;
#define pp             pair<int,int>
#define input(a,n)     for(int i=0;i<n;i++) cin>>a[i];
#define mod            1000000007
#define co(n)          cout<<n;

int main()
{
    fast
    long long n, x, y; scanf("%lld %lld %lld", &n, &x, &y);
    bool possible = 1;
    std::vector<long long> numbers(n, 1);
    numbers[n - 1] = y - (n - 1);
    if(numbers[n - 1] <= 0){possible = 0;}

    long long sumOfSquares = 0;
    for(int p = 0; p < n; p++){sumOfSquares += numbers[p] * numbers[p];}
    if(sumOfSquares < x){possible = 0;}

    if(possible){for(int p = 0; p < n; p++){printf("%lld ", numbers[p]);}; puts("");}
    else{puts("-1");}
    return 0;
}


#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <utility>
#include <map>
#include <list>
#include <climits>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <string>

// #define cerr if(false)cerr
#define watch(x) cerr << "> " << #x << ": " << x << "\n";

using namespace std;

template <typename T>
std::ostream &operator <<(std::ostream &out, vector<T> &v) {
	for (typename vector<T>::size_type i = 0; i < v.size(); ++i)
		out << v[i] << " ";
	out << "\n";
    return out;
}
template <typename T, typename N>
std::ostream &operator <<(std::ostream &out, vector<pair<T, N> > &v) {
	for (size_t i = 0; i < v.size(); ++i)
		out << "(" << v[i].first << ", " << v[i].second << ") ";
	out << "\n";
    return out;
}
template <typename T>
std::ostream &operator <<(std::ostream &out, vector<vector<T> > &v) {
	for (size_t i = 0; i < v.size(); ++i) {
		for (size_t j = 0; j < v[i].size(); ++j) {
			out << v[i][j] << " ";
		}
		out << "\n";
	}
   	return out;
}

int main() {

	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	long long n, x, y;
	cin >> n >> x >> y;

	if (y < n) {
		cout << "-1\n";
		return 0;
	}

	long long z = y - n + 1;
	if (n - 1 + z * z < x) {
		cout << "-1\n";
	} else {
		cout << z << " ";
		for (int i = 0; i < n - 1; ++i) {
			cout << "1 ";
		}

		cout << "\n";
	}

	return 0;

}


#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <utility>
#include <map>
#include <list>
#include <climits>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <string>

// #define cerr if(false)cerr
#define watch(x) cerr << "> " << #x << ": " << x << "\n";

using namespace std;

template <typename T>
std::ostream &operator <<(std::ostream &out, vector<T> &v) {
	for (typename vector<T>::size_type i = 0; i < v.size(); ++i)
		out << v[i] << " ";
	out << "\n";
    return out;
}
template <typename T, typename N>
std::ostream &operator <<(std::ostream &out, vector<pair<T, N> > &v) {
	for (size_t i = 0; i < v.size(); ++i)
		out << "(" << v[i].first << ", " << v[i].second << ") ";
	out << "\n";
    return out;
}
template <typename T>
std::ostream &operator <<(std::ostream &out, vector<vector<T> > &v) {
	for (size_t i = 0; i < v.size(); ++i) {
		for (size_t j = 0; j < v[i].size(); ++j) {
			out << v[i][j] << " ";
		}
		out << "\n";
	}
   	return out;
}

int main() {

	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	long long n, x, y;
	cin >> n >> x >> y;

	long long z = y - n + 1;
	if (n - 1 + z * z < x) {
		cout << "-1\n";
	} else {
		cout << z << " ";
		for (int i = 0; i < n - 1; ++i) {
			cout << "1 ";
		}

		cout << "\n";
	}

	return 0;

}


#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <utility>
#include <map>
#include <list>
#include <climits>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <string>

// #define cerr if(false)cerr
#define watch(x) cerr << "> " << #x << ": " << x << "\n";

using namespace std;

template <typename T>
std::ostream &operator <<(std::ostream &out, vector<T> &v) {
	for (typename vector<T>::size_type i = 0; i < v.size(); ++i)
		out << v[i] << " ";
	out << "\n";
    return out;
}
template <typename T, typename N>
std::ostream &operator <<(std::ostream &out, vector<pair<T, N> > &v) {
	for (size_t i = 0; i < v.size(); ++i)
		out << "(" << v[i].first << ", " << v[i].second << ") ";
	out << "\n";
    return out;
}
template <typename T>
std::ostream &operator <<(std::ostream &out, vector<vector<T> > &v) {
	for (size_t i = 0; i < v.size(); ++i) {
		for (size_t j = 0; j < v[i].size(); ++j) {
			out << v[i][j] << " ";
		}
		out << "\n";
	}
   	return out;
}

int main() {

	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	long long n, x, y;
	cin >> n >> x >> y;

	int z = y - n + 1;
	if (n - 1 + z * z < x) {
		cout << "-1\n";
	} else {
		cout << z << " ";
		for (int i = 0; i < n - 1; ++i) {
			cout << "1 ";
		}

		cout << "\n";
	}

	return 0;

}


/*
 _     _
| |__ | |__   __ _  __ _ _   _  __ _
| '_ \| '_ \ / _` |/ _` | | | |/ _` |
| |_) | | | | (_| | (_| | |_| | (_| |
|_.__/|_| |_|\__,_|\__, |\__, |\__,_|
                   |___/ |___/
*/
#include<bits/stdc++.h>

#define ll          long long
#define pb          push_back
#define ppb         pop_back
#define	endl		'\n'
#define mii         map<ll int,ll int>
#define msi         map<string,ll int>
#define mis         map<ll int, string>
#define mpi         map<pair<ll int,ll int>,ll int>
#define pii         pair<ll int,ll int>
#define vi          vector<ll int>
#define vs          vector<string>
#define all(a)      (a).begin(),(a).end()
#define F           first
#define S           second
#define sz(x)       (ll int)x.size()
#define hell        1000000007
#define lbnd        lower_bound
#define ubnd        upper_bound
#define bs          binary_search
#define mp          make_pair
#define what_is(x)  cerr << #x << " is " << x << endl;
using namespace std;

#define N  100005

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int TESTS=1;
//	cin>>TESTS;
	while(TESTS--)
	{
		ll int n,x,y;
		cin>>n>>x>>y;
		ll int arr[n+1];
		for(ll int i=1;i<=n;i++) arr[i]=1;
		arr[1]+=y-n;
		ll int sm=0;
		for(ll int i=1;i<=n;i++) {sm+=arr[i]*arr[i];if(arr[i]<=0) sm=-1e18;};
		if(sm>=x)
		{
			for(ll int i=1;i<=n;i++) cout<<arr[i]<<endl;
		}
		else
		{
			cout<<-1;
		}
	}
	return 0;
}


/*
 _     _
| |__ | |__   __ _  __ _ _   _  __ _
| '_ \| '_ \ / _` |/ _` | | | |/ _` |
| |_) | | | | (_| | (_| | |_| | (_| |
|_.__/|_| |_|\__,_|\__, |\__, |\__,_|
                   |___/ |___/
*/
#include<bits/stdc++.h>

#define ll          long long
#define pb          push_back
#define ppb         pop_back
#define	endl		'\n'
#define mii         map<ll int,ll int>
#define msi         map<string,ll int>
#define mis         map<ll int, string>
#define mpi         map<pair<ll int,ll int>,ll int>
#define pii         pair<ll int,ll int>
#define vi          vector<ll int>
#define vs          vector<string>
#define all(a)      (a).begin(),(a).end()
#define F           first
#define S           second
#define sz(x)       (ll int)x.size()
#define hell        1000000007
#define lbnd        lower_bound
#define ubnd        upper_bound
#define bs          binary_search
#define mp          make_pair
#define what_is(x)  cerr << #x << " is " << x << endl;
using namespace std;

#define N  100005

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int TESTS=1;
//	cin>>TESTS;
	while(TESTS--)
	{
		ll int n,x,y;
		cin>>n>>x>>y;
		ll int arr[n+1];
		for(ll int i=1;i<=n;i++) arr[i]=1;
		arr[1]+=y-n;
		ll int sm=0;
		for(ll int i=1;i<=n;i++) sm+=arr[i]*arr[i];
		if(sm>=x)
		{
			for(ll int i=1;i<=n;i++) cout<<arr[i]<<endl;
		}
		else
		{
			cout<<-1;
		}
	}
	return 0;
}


#include<bits/stdc++.h>
#include<vector>
#include<deque>
#include<algorithm>
#include<string>
#include<stdio.h>

#define ELIF else if
#define FOR(iterator, limit, adder) for(int iterator=0; iterator<limit; iterator+=adder)
#define PI 3.1415926535897932384626433832795
#define PB push_back

typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;
using namespace std;

vector <int> v;
int main()
{
	long long n,a,b,s;
    cin>>n>>a>>b;
    s=b-(n-1);
    s=s*s+(n-1);
    //cout<<s;
    if(a>s)
    {
      cout<<"-1";
        return 0;
    }

    for(int i=0;i<n-1;i++){
        cout<<"1\n";

    }
    cout<<b-(n-1);

}


#include<bits/stdc++.h>
#include<vector>
#include<deque>
#include<algorithm>
#include<string>
#include<stdio.h>

#define ELIF else if
#define FOR(iterator, limit, adder) for(int iterator=0; iterator<limit; iterator+=adder)
#define PI 3.1415926535897932384626433832795
#define PB push_back

typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;
using namespace std;

vector <int> v;
int main()
{
	long long n,a,b,s;
    cin>>n>>a>>b;
    s=b-(n-1);
    //cout<<s;
    if(s<=0){
        cout<<"-1";
        return 0;
    }
    s=s*s+(n-1);

    if(a>s)
    {
      cout<<"-1";
        return 0;
    }

    for(int i=0;i<n-1;i++){
        cout<<"1\n";

    }
    cout<<b-(n-1);

}


#include<bits/stdc++.h>

#define ll           long long
#define pii           pair<ll,ll>
#define lld          long double
#define vi           vector<ll>
#define pb           push_back
#define all(a)       (a).begin(),(a).end()
#define F            first
#define S            second
#define sz(x)        (int)x.size()
#define hell         1000000007
#define endl         '\n'
#define fl(z,a,b)    for(ll z=a;z<b;z++)
#define ifl(i,a,b)   for(ll i=a;i<=b;i++)
#define dfl(i,a,b)   for(ll i=a;i>=b;i--)
#define read(x)      cin>>(x)
#define speed        ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define debug(x)     cerr << "at line " << __LINE__ << ": " << #x << " = " << (x) << endl
#define whatis(x)    cerr << #x << " = " << (x) << endl
using namespace std;
//=====================
const ll N  = 100+5;
//const int inf=0x3f3f3f3f;

void solve()
{
    ll n,x,y;
    cin>>n>>x>>y;

    ll r = y-(n-1);
    ll l = ceil(sqrt(x*1.0-(n-1)*1.0));
    if(l>r)
    {
        cout<<-1<<endl;
    }
    else
    {
        cout<<r<<endl;
        fl(i,0,n-1)
        {
            cout<< 1 << endl;
        }
    }

}

int main()
{

    ll T=1;
    speed;
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif

// cin>>T;
    while(T--) solve();

    return 0;
}


#include<bits/stdc++.h>

#define ll           long long
#define pii           pair<ll,ll>
#define lld          long double
#define vi           vector<ll>
#define pb           push_back
#define all(a)       (a).begin(),(a).end()
#define F            first
#define S            second
#define sz(x)        (int)x.size()
#define hell         1000000007
#define endl         '\n'
#define fl(z,a,b)    for(ll z=a;z<b;z++)
#define ifl(i,a,b)   for(ll i=a;i<=b;i++)
#define dfl(i,a,b)   for(ll i=a;i>=b;i--)
#define read(x)      cin>>(x)
#define speed        ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define debug(x)     cerr << "at line " << __LINE__ << ": " << #x << " = " << (x) << endl
#define whatis(x)    cerr << #x << " = " << (x) << endl
using namespace std;
//=====================
const ll N  = 100+5;
//const int inf=0x3f3f3f3f;

void solve()
{
    ll n,x,y;
    cin>>n>>x>>y;

    ll r = y-(n-1);

    if((r<1))  {
        cout<<-1 << endl;
        return;
    }
  if( r*r >= x-(n-1) )
    {
        cout<<r<<endl;
        fl(i,0,n-1)
        {
            cout<< 1 << endl;
        }
        return;
    }

     cout<<-1 << endl;
        return;

}

int main()
{

    ll T=1;
    speed;
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif

// cin>>T;
    while(T--) solve();

    return 0;
}


#include<bits/stdc++.h>

#define ll           long long
#define pii           pair<ll,ll>
#define lld          long double
#define vi           vector<ll>
#define pb           push_back
#define all(a)       (a).begin(),(a).end()
#define F            first
#define S            second
#define sz(x)        (int)x.size()
#define hell         1000000007
#define endl         '\n'
#define fl(z,a,b)    for(ll z=a;z<b;z++)
#define ifl(i,a,b)   for(ll i=a;i<=b;i++)
#define dfl(i,a,b)   for(ll i=a;i>=b;i--)
#define read(x)      cin>>(x)
#define speed        ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define debug(x)     cerr << "at line " << __LINE__ << ": " << #x << " = " << (x) << endl
#define whatis(x)    cerr << #x << " = " << (x) << endl
using namespace std;
//=====================
const ll N  = 100+5;
//const int inf=0x3f3f3f3f;

void solve()
{
    ll n,x,y;
    cin>>n>>x>>y;

    ll r = y-(n-1);

  if( r*r >= x-(n-1) )
    {
        cout<<r<<endl;
        fl(i,0,n-1)
        {
            cout<< 1 << endl;
        }
        return;
    }

     cout<<-1 << endl;
        return;

}

int main()
{

    ll T=1;
    speed;
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif

// cin>>T;
    while(T--) solve();

    return 0;
}


#include<bits/stdc++.h>

#define ll           long long
#define pii           pair<ll,ll>
#define lld          long double
#define vi           vector<ll>
#define pb           push_back
#define all(a)       (a).begin(),(a).end()
#define F            first
#define S            second
#define sz(x)        (int)x.size()
#define hell         1000000007
#define endl         '\n'
#define fl(z,a,b)    for(ll z=a;z<b;z++)
#define ifl(i,a,b)   for(ll i=a;i<=b;i++)
#define dfl(i,a,b)   for(ll i=a;i>=b;i--)
#define read(x)      cin>>(x)
#define speed        ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define debug(x)     cerr << "at line " << __LINE__ << ": " << #x << " = " << (x) << endl
#define whatis(x)    cerr << #x << " = " << (x) << endl
using namespace std;
//=====================
const ll N  = 100+5;
//const int inf=0x3f3f3f3f;

void solve()
{
    ll n,x,y;
    cin>>n>>x>>y;

    ll r = y-(n-1);

    if((x-(n-1)) <0)  {
        cout<<-1 << endl;
        return;
    }
    ll l = ceil(sqrt(x*1.0-(n-1)*1.0));
    if(l>r)
    {
        cout<<-1<<endl;
    }
    else
    {
        cout<<r<<endl;
        fl(i,0,n-1)
        {
            cout<< 1 << endl;
        }
    }

}

int main()
{

    ll T=1;
    speed;
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif

// cin>>T;
    while(T--) solve();

    return 0;
}


#include<bits/stdc++.h>

#define ll           long long
#define pii           pair<ll,ll>
#define lld          long double
#define vi           vector<ll>
#define pb           push_back
#define all(a)       (a).begin(),(a).end()
#define F            first
#define S            second
#define sz(x)        (int)x.size()
#define hell         1000000007
#define endl         '\n'
#define fl(z,a,b)    for(ll z=a;z<b;z++)
#define ifl(i,a,b)   for(ll i=a;i<=b;i++)
#define dfl(i,a,b)   for(ll i=a;i>=b;i--)
#define read(x)      cin>>(x)
#define speed        ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define debug(x)     cerr << "at line " << __LINE__ << ": " << #x << " = " << (x) << endl
#define whatis(x)    cerr << #x << " = " << (x) << endl
using namespace std;
//=====================
const ll N  = 100+5;
//const int inf=0x3f3f3f3f;

void solve()
{
    ll n,x,y;
    cin>>n>>x>>y;

    ll r = y-(n-1);

    if((x-(n-1)) <0 or (r<1))  {
        cout<<-1 << endl;
        return;
    }
    ll l = ceil(sqrt(x*1.0-(n-1)*1.0));
    if(l>r)
    {
        cout<<-1<<endl;
    }
    else
    {
        cout<<r<<endl;
        fl(i,0,n-1)
        {
            cout<< 1 << endl;
        }
    }

}

int main()
{

    ll T=1;
    speed;
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif

// cin>>T;
    while(T--) solve();

    return 0;
}


#include<bits/stdc++.h>

#define ll           long long
#define pii           pair<ll,ll>
#define lld          long double
#define vi           vector<ll>
#define pb           push_back
#define all(a)       (a).begin(),(a).end()
#define F            first
#define S            second
#define sz(x)        (int)x.size()
#define hell         1000000007
#define endl         '\n'
#define fl(z,a,b)    for(ll z=a;z<b;z++)
#define ifl(i,a,b)   for(ll i=a;i<=b;i++)
#define dfl(i,a,b)   for(ll i=a;i>=b;i--)
#define read(x)      cin>>(x)
#define speed        ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define debug(x)     cerr << "at line " << __LINE__ << ": " << #x << " = " << (x) << endl
#define whatis(x)    cerr << #x << " = " << (x) << endl
using namespace std;
//=====================
const ll N  = 100+5;
//const int inf=0x3f3f3f3f;

void solve()
{
    ll n,x,y;
    cin>>n>>x>>y;

    ll r = y-(n-1);
    if(r<1)
    {
        cout<<-1 << endl;
        return;
    }
    if((x-(n-1)) <1)  {
        cout<<-1 << endl;
        return;
    }
    ll l = ceil(sqrt(x*1.0-(n-1)*1.0));
    if(l>r)
    {
        cout<<-1<<endl;
    }
    else
    {
        cout<<r<<endl;
        fl(i,0,n-1)
        {
            cout<< 1 << endl;
        }
    }

}

int main()
{

    ll T=1;
    speed;
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif

// cin>>T;
    while(T--) solve();

    return 0;
}


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

#define sd(x) 		scanf("%d",&x)
#define su(x) 		scanf("%u",&x)
#define slld(x) 	scanf("%lld",&x)
#define sc(x) 		scanf("%c",&x)
#define ss(x) 		scanf("%s",x)
#define sf(x) 		scanf("%f",&x)
#define slf(x)		scanf("%lf",&x)
#define ll 			long long int
#define mod(x,n) 	(x+n)%n
#define pb          push_back
#define mp          make_pair
#define pii         pair<int,int>
#define vi          vector<int>
#define all(a)      (a).begin(),(a).end()
#define F           first
#define S           second
#define sz(x)       (int)x.size()
ll Mod = 1000000007;

int main(){
	ll n,x,y;
	cin>>n>>x>>y;
	if((y-(n-1)) <= 0){
		cout<<-1<<endl;
		return 0;
	}
	if(((ll)(y-(n-1))*(y-(n-1)) + (n-1)) >= x){
		cout<<(y-(n-1))<<endl;
		for(int i=0;i<n-1;i++){
			cout<<1<<endl;
		}
	}
	else{
		cout<<-1<<endl;
	}

	return 0;
}


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

#define sd(x) 		scanf("%d",&x)
#define su(x) 		scanf("%u",&x)
#define slld(x) 	scanf("%lld",&x)
#define sc(x) 		scanf("%c",&x)
#define ss(x) 		scanf("%s",x)
#define sf(x) 		scanf("%f",&x)
#define slf(x)		scanf("%lf",&x)
#define ll 			long long int
#define mod(x,n) 	(x+n)%n
#define pb          push_back
#define mp          make_pair
#define pii         pair<int,int>
#define vi          vector<int>
#define all(a)      (a).begin(),(a).end()
#define F           first
#define S           second
#define sz(x)       (int)x.size()
ll Mod = 1000000007;

int main(){
	ll n,x,y;
	cin>>n>>x>>y;
	if(((ll)(y-(n-1))*(y-(n-1)) + (n-1)) >= x){
		cout<<(y-(n-1))<<endl;
		for(int i=0;i<n-1;i++){
			cout<<1<<endl;
		}
	}
	else{
		cout<<-1<<endl;
	}

	return 0;
}


#include <iostream>
#include <vector>
#include <set>
#include <algorithm>

using namespace std;

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long n, x, y;
  cin >> n >> x >> y;
  long long a1 = y - (n - 1);
  if (a1 > 0 && a1 * a1  >= x) {
    cout << a1 << endl;
    for (int i = 0; i < n - 1; i++) {
      cout << 1 << endl;
    }
  } else {
    cout << -1 << endl;
  }
  return 0;
}


#include <iostream>
#include <vector>
#include <set>
#include <algorithm>

using namespace std;

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long n, x, y;
  cin >> n >> x >> y;
  long long a1 = y - (n - 1);
  if (a1 > 0 && (a1 * a1 + n - 1)  >= x) {
    cout << a1 << endl;
    for (int i = 0; i < n - 1; i++) {
      cout << 1 << endl;
    }
  } else {
    cout << -1 << endl;
  }
  return 0;
}


#include <bits/stdc++.h>
using namespace std ;
#define ll long long
inline int D(){
    int t ;
    scanf( "%d" , &t ) ;
    return t ;
}
inline ll LLD(){
    ll t ;
    scanf( "%lld" , &t ) ;
    return t ;
}
//################################################################

int main() {
    int n=D();
    ll x=LLD(),y=LLD();
    ll u=(y-n)+1;
    ll uu=pow(u,2);
    if(uu+(n-1)>=x){
        cout<<u<<"\n";
        for(int i=0;i<n-1;i++)
            cout<<"1\n";
    }else cout<<"-1";
}


#include <bits/stdc++.h>
using namespace std ;
#define ll long long
inline int D(){
    int t ;
    scanf( "%d" , &t ) ;
    return t ;
}
inline ll LLD(){
    ll t ;
    scanf( "%lld" , &t ) ;
    return t ;
}
//################################################################

int main() {
    int n=D();
    ll x=LLD(),y=LLD();
    if(n>y){
        cout<<"-1";
        return 0;
    }
    ll u=(y-n)+1;
    ll uu=pow(u,2);
    if(uu+(n-1)>=x){
        cout<<u<<"\n";
        for(int i=0;i<n-1;i++)
            cout<<"1\n";
    }else cout<<"-1";
}


#include<bits/stdc++.h>
#include<fstream>
#define ll long long
#define prime 1000000007
using namespace std;

#define WINPAUSE system("pause")

int main()
 {
     #ifndef ONLINE_JUDGE
     freopen("input.txt","r",stdin);
     freopen("output.txt","w",stdout);
     freopen("log.txt", "w", stderr);
    #endif
   ll n,x,y;
    cin>>n>>x>>y;
    if(y<n)
      {
        cout<<-1<<endl;
        return 0;
      }
      ll a[n];
      for(int i=0;i<n;i++)
         a[i]=1;
      //int i=1;
    y-=n-1;
    a[0]=y;
    ll sum=0;
    for(int i=0;i<n;i++)
      {
        sum+=a[i]*a[i];
      }
    if(sum<x)
       cout<<-1<<endl;
    else
    {
         for(int i=0;i<n;i++)
      {
        cout<<a[i]<<" ";
      }
    }

 //WINPAUSE;
     return 0;

}


#include<bits/stdc++.h>
#include<fstream>
#define ll long long
#define prime 1000000007
using namespace std;

#define WINPAUSE system("pause")

int main()
 {
     #ifndef ONLINE_JUDGE
     freopen("input.txt","r",stdin);
     freopen("output.txt","w",stdout);
     freopen("log.txt", "w", stderr);
    #endif
   ll n,x,y;
    cin>>n>>x>>y;
    if(y<n || x<y)
      {
        cout<<-1<<endl;
        return 0;
      }
      ll a[n];
      for(int i=0;i<n;i++)
         a[i]=1;
      //int i=1;
    y-=n-1;
    a[0]=y;
    ll sum=0;
    for(int i=0;i<n;i++)
      {
        sum+=a[i]*a[i];
      }
    if(sum<x)
       cout<<-1<<endl;
    else
    {
         for(int i=0;i<n;i++)
      {
        cout<<a[i]<<" ";
      }
    }

 //WINPAUSE;
     return 0;

}


#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main() {
	// your code goes here
	ll n,x,y,temp,temp1;
	cin>>n>>x>>y;
	temp = y/n;
	temp+=y%n;
	ll t = (temp-1)*(n-1)+temp;
	if(t*t+n-1<x)
		cout<<"-1"<<endl;
	else
	{
		for(ll i=1;i<=n-1;i++)
			cout<<"1"<<" ";
		cout<<t<<" ";
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main() {
	// your code goes here
	ll n,x,y,temp,temp1;
	cin>>n>>x>>y;
	temp = y/n;
	if(y%n!=0)
	temp1 = n%x;
	if(y%n==0)
	{
		if((temp*temp)*n<x)
			cout<<"-1"<<endl;
		else
		{
			for(ll i=1;i<=n;i++)
				cout<<temp<<" ";
		}
	}
	else
	{
		temp1 += temp;
		if((temp*temp)*(n-1)+(temp1*temp1)<x)
			cout<<"-1"<<endl;
		else
		{
			for(ll i=1;i<=n-1;i++)
				cout<<temp<<" ";
			cout<<temp1<<" ";
		}
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main() {
	// your code goes here
	ll n,x,y,temp,temp1;
	cin>>n>>x>>y;
	temp = floor(y/n);
	temp1+=y%n;
	//cout<<temp<<endl;
	ll t = (temp-1)*(n-1)+temp+temp1;
	if(t*t+n-1<x)
		cout<<"-1"<<endl;
	else
	{
		for(ll i=1;i<=n-1;i++)
			cout<<"1"<<" ";
		cout<<t<<" ";
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main() {
	// your code goes here
	ll n,x,y,temp,temp1;
	cin>>n>>x>>y;
	if(n>y)
	{
		cout<<"-1"<<endl;
		return 0;
	}
	temp = floor(y/n);
	temp1+=y%n;
	//cout<<temp<<endl;
	ll t = (temp-1)*(n-1)+temp+temp1;
	if(t*t+n-1<x)
		cout<<"-1"<<endl;
	else
	{
		for(ll i=1;i<=n-1;i++)
			cout<<"1"<<" ";
		cout<<t<<" ";
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define INF 10000000000099ll
using ld = long double;
using ull = unsigned long long;
int mod = pow(10,9)+7;
int main()
{
	ll n,x,y;
	cin>>n>>x>>y;
	if(n>y)
	{
		cout<<1;
		return 0;
	}
	vector<int> arr(n,1);
	arr[0]+=y-n;
	ll sum=0;
	for(int i=0;i<n;i++)
		sum+=arr[i]*arr[i];

	if(sum <x)
	{
		cout<<"-1";
	}
	else
	{
		for(int i=0;i<n;i++)
			cout<<arr[i]<<"\n";
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define INF 10000000000099ll
using ld = long double;
using ull = unsigned long long;
int mod = pow(10,9)+7;
int main()
{
	ll n,x,y;
	cin>>n>>x>>y;
	ll num=y/n,rem=y%n;
	vector<ll> arr(n,num);
	arr[0]+=rem;
	ll sum=0;
	for(int i=0;i<n;i++)
		sum+=arr[i]*arr[i];

	if(sum < x)
	{
		cout<<"-1";
		return 0;
	}
	for(int i=0;i<n;i++)
		cout<<arr[i]<<"\n";
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define INF 10000000000099ll
using ld = long double;
using ull = unsigned long long;
int mod = pow(10,9)+7;
int main()
{
	ll n,x,y;
	cin>>n>>x>>y;
	if(n>y)
	{
		cout<<-1;
		return 0;
	}
	vector<ll> arr(n,1);
	arr[0]+=y-n;
	ll sum=0;
	for(int i=0;i<n;i++)
		sum+=arr[i]*arr[i];

	if(sum <x)
	{
		cout<<"-1";
	}
	else
	{
		for(int i=0;i<n;i++)
			cout<<arr[i]<<"\n";
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define INF 10000000000099ll
using ld = long double;
using ull = unsigned long long;
int mod = pow(10,9)+7;
int main()
{
	ll n,x,y;
	cin>>n>>x>>y;
	if(n>y)
	{
		cout<<1;
		return 0;
	}
	vector<ll> arr(n,1);
	arr[0]+=y-n;
	ll sum=0;
	for(int i=0;i<n;i++)
		sum+=arr[i]*arr[i];

	if(sum <x)
	{
		cout<<"-1";
	}
	else
	{
		for(int i=0;i<n;i++)
			cout<<arr[i]<<"\n";
	}
	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
#define mod 998244353
#define pb push_back
#define ss second
#define ff first
#define INF 1000000000000000001
#define PI 3.14159265358979323846L
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
typedef vector<pair<ll,ll> > vll;
typedef vector<pair<int,int> > vii ;
typedef pair<ll,ll> pll;

int main()
{
    fast;
    int _ = 1;
    //cin >> _;
    while(_--)
    {
        ll n, ans = 1, x, y, a, b, c, d;
        cin >> a >> b >> c >> d;
        n = a + b + c + d;
        ll arr[n + 3], brr[n + 3][2];
        for(int i = 0; i < n + 3; i++) arr[i] = INF;
        for(int i = 1; i < n + 3; i += 2)
        {
            if(a) arr[i] = 0, a--;
            else if(c) arr[i] = 2, c--;
            else break;
        }
        for(int i = 0; i < n + 3; i++)
        {
            brr[i][0]= brr[i][1] = arr[i];
        }
        for(int i = 0; i < n + 1; i += 2)
        {
            if(b)
            {
                brr[i][0] = 1;
                brr[i + 2][1] = 1;
                b--;
            }
            else if(d)
            {
                brr[i][0] = 3;
                brr[i + 2][1] = 3;
                d--;
            }
        }
        bool a1 = 1, a2 = 1;
        for(int i = 0; i < n - 1; i++)
        {
            if(abs(brr[i][0] - brr[i + 1][0]) != 1)
            {
                a1 = 0;
            }
            if(abs(brr[i + 1][1] - brr[i + 2][1]) != 1)
            {
                a2 = 0;
            }
        }
        if(brr[0][0] > 3) a1 = 0;
        if(brr[1][1] > 3) a2 = 0;
        if(a1 || a2)
        {
            cout << "YES\n";
            if(a2) for(int i = 1; i < n + 1; i++) cout << brr[i][1] << " ";
            else for(int i = 0; i < n; i++) cout << brr[i][0] << " ";
        }
        else cout << "NO";
    }
    return 0;
}


#include <bits/stdc++.h>
#define ll long long int
#define mod 1000000007
#define pb push_back
#define ss second
#define ff first
#define INF 1000000000000000001
#define PI 3.14159265358979323846L
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL)
using namespace std;
typedef vector<pair<ll,ll> > vll;
typedef vector<pair<int,int> > vii ;
typedef pair<ll,ll> pll;

int main()
{
    fast;
    int _ = 1;
    //cin >> _;
    while(_--)
    {
        ll n, x, l, r, ans = 1, a, b , c, d;
        cin >> a >> b >> c >> d;
        n = a + b + c + d;
        ll arr[n * 5];
        ll brr[4] = {a , b , c , d};
        l = r = n * 2;
        for(int i = 0; i < 4; i++)
        {
            if(brr[i] > 0)
            {
                brr[i]--;
                arr[l] = i;
                break;
            }
        }
        bool done;
        while(n--)
        {
            done = 0;
            for(int i = 0; i < 4; i++)
            {
                if(done) break;
                if(brr[i] > 0 && abs(arr[l] - i) == 1)
                {
                    brr[i]--;
                    l--;
                    arr[l] = i;
                    done = 1;
                }
            }
            for(int i = 0; i < 4; i++)
            {
                if(done) break;
                if(brr[i] > 0 && abs(arr[r] - i) == 1)
                {
                    brr[i]--;
                    r++;
                    arr[r] = i;
                    done = 1;
                }
            }
            if(n == 0) break;
            if(!done)
            {
                ans = 0;
                break;
            }
        }
        if(!ans)
        {
            cout << "NO\n";
        }
        else
        {
            cout << "YES\n";
            for(int i = l; i <= r; i++) cout << arr[i] << " ";
            cout << "\n";
        }
    }
    return 0;
}


#include <bits/stdc++.h>
#define ll long long int
#define mod 998244353
#define pb push_back
#define ss second
#define ff first
#define INF 1000000000000000001
#define PI 3.14159265358979323846L
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
typedef vector<pair<ll,ll> > vll;
typedef vector<pair<int,int> > vii ;
typedef pair<ll,ll> pll;

int main()
{
    fast;
    int _ = 1;
    //cin >> _;
    while(_--)
    {
        ll n, ans = 1, x, y, a, b, c, d, z;
        cin >> a >> b >> c >> d;
        n = a + b + c + d;
        ll arr[n + 2];
        x = a;
        y = c;
        for(int i = 1; i < n + 2; i += 2)
        {
            if(x) arr[i] = 0, x--, z = i;
            else if(y) arr[i] = 2, y--, z = i;
            else break;
        }
        x = 2;
        label:
        ans = 1;
        for(int i = x; i < n + 2; i += 2)
        {
            if(a) arr[i] = 1, a--, y = i;
            else if(c) arr[i] = 3, c--, y = i;
            else break;
        }
        z = max(z, y);
        if(x > 0) x--;
        for(int i = x; i < z; i++)
        {
            if(abs(arr[i] - arr[i + 1]) != 1)
            {
                ans = 0;
                break;
            }
        }
        if(x == 2 && !ans)
        {
            x = 0;
            goto label;
        }
        if(ans)
        {
            cout << "YES\n";
            for(int i = x; i <= z; i++) cout << arr[i] << " ";
        }
        else cout << "NO";
    }
    return 0;
}


#include <bits/stdc++.h>
#define ll long long int
#define mod 1000000007
#define pb push_back
#define ss second
#define ff first
#define INF 1000000000000000001
#define PI 3.14159265358979323846L
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL)
using namespace std;
typedef vector<pair<ll,ll> > vll;
typedef vector<pair<int,int> > vii ;
typedef pair<ll,ll> pll;

int main()
{
    fast;
    int _ = 1;
    //cin >> _;
    while(_--)
    {
        ll n, x, l, r, ans = 1, a, b , c, d;
        cin >> a >> b >> c >> d;
        n = a + b + c + d;
        ll arr[n * 6];
        ll brr[] = {a , b , c , d};
        l = r = n * 3;
        for(int i = 0; i < 4; i++)
        {
            if(brr[i] > 0)
            {
                brr[i]--;
                arr[l] = i;
                break;
            }
        }
        bool done;
        n--;
        while(n--)
        {
            done = 0;
            for(int i = 0; i < 4; i++)
            {
                if(done) break;
                if(brr[i] > 0 && abs(arr[r] - i) == 1)
                {
                    brr[i]--;
                    r++;
                    arr[r] = i;
                    done = 1;
                }
            }
            for(int i = 0; i < 4; i++)
            {
                if(done) break;
                if(brr[i] > 0 && abs(arr[l] - i) == 1)
                {
                    brr[i]--;
                    l--;
                    arr[l] = i;
                    done = 1;
                }
            }
            if(!done)
            {
                ans = 0;
                break;
            }
        }
        if(!ans)
        {
            cout << "NO\n";
        }
        else
        {
            cout << "YES\n";
            for(int i = l; i <= r; i++) cout << arr[i] << " ";
            cout << "\n";
        }
    }
    return 0;
}


#include <bits/stdc++.h>
#define ll long long int
#define mod 998244353
#define pb push_back
#define ss second
#define ff first
#define INF 1000000000000000001
#define PI 3.14159265358979323846L
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
typedef vector<pair<ll,ll> > vll;
typedef vector<pair<int,int> > vii ;
typedef pair<ll,ll> pll;

int main()
{
    fast;
    int _ = 1;
    //cin >> _;
    while(_--)
    {
        ll n, ans = 1, x, y, a, b, c, d, z, v;
        cin >> a >> b >> c >> d;
        n = a + b + c + d;
        ll arr[n + 2];
        x = a;
        y = c;
        for(int i = 1; i < n + 2; i += 2)
        {
            if(x) arr[i] = 0, x--, z = i;
            else if(y) arr[i] = 2, y--, z = i;
            else break;
        }
        x = 2;
        v = z;
        a = b;
        c = d;
        label:
        b = a;
        d = c;
        z = v;
        y = 0;
        ans = 1;
        for(int i = x; i < n + 2; i += 2)
        {
            if(b) arr[i] = 1, b--, y = i;
            else if(d) arr[i] = 3, d--, y = i;
            else break;
        }
        z = max(z, y);
        if(x > 0) x--;
        for(int i = x; i < z; i++)
        {
            if(abs(arr[i] - arr[i + 1]) != 1)
            {
                ans = 0;
                break;
            }
        }
        if(x == 1 && !ans)
        {
            x = 0;
            goto label;
        }
        if(ans)
        {
            cout << "YES\n";
            for(int i = x; i <= z; i++) cout << arr[i] << " ";
        }
        else cout << "NO";
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int aa = 0, bb = 1, cc = 2, dd = 3, shift = 0;
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    while(a == 0) {
        a = b;
        b = c;
        c = d;
        d = 0;
        shift++;
    }

    /*if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n";
            cout << aa + shift << " ";
            for(int i=0;i<b;i++) {
                cout << bb + shift << " " << aa + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n";
            cout << dd + shift << " ";
            for(int i=0;i<c;i++) {
                cout << cc + shift << " " << dd + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }*/

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << aa + shift << " " << bb + shift << " ";
        }
        for(int i=0;i<c;i++) {
            cout << cc + shift << " " << dd + shift << " ";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    if(c + a > b + d) { swap(a, d); swap(b, c); swap(aa, dd); swap(bb, cc); }

    vector <int> result;

    while(a > 0 and b > 0) {
        result.pb(bb + shift);
        result.pb(aa + shift);
        a--;
        b--;
    }

    if(a > 0) {
        result.pb(aa + shift);
        a--;
    }
    while(b > 0 and c > 0) {
        result.pb(bb + shift);
        result.pb(cc + shift);
        b--;
        c--;
    }
    if(b > 0) {
        result.pb(bb + shift);
        b--;
    }
    while(c > 0) {
        result.pb(dd + shift);
        result.pb(cc + shift);
        c--;
        d--;
    }
    if(d > 0) {
        result.pb(dd + shift);
        d--;
    }

    if(a + b + c + d != 0 or max({a, b, c, d}) != 0) {
        cout << "NO\n";
        return 0;
    }

    for(int i=1;i<result.size();i++) {
        if(abs(result[i] - result[i - 1]) != 1) {
            cout << "NO\n";
            return 0;
        }
    }

    cout << "YES\n";
    for(auto it : result) {
        cout << it << " ";
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int aa = 0, bb = 1, cc = 2, dd = 3, shift = 0;
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a + b + c + d == 1) {
        cout << "YES\n";
        if(a == 1) {
            cout << "0";
        }
        if(b == 1) {
            cout << "1";
        }
        if(c == 1) {
            cout << "2";
        }
        if(d == 1) {
            cout << "3";
        }
        return 0;
    }

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << bb + shift << " " << aa + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << cc + shift << " " << dd + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b > a + c) {
        if(b <= a + c + 1 and d == 0) {
            cout << "YES\n";
            if(b == a + c + 1) cout << "1 ";
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << aa + shift << " " << bb + shift << " ";
                }
                else {
                    cout << cc + shift << " " << bb + shift << " ";
                }
            }
        }
        else if(max(a, d) == 0 and b == c + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<c;i++) {
                cout << "2 1 ";
            }
        }
        else if(max(c, d) == 0 and b == a + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<a;i++) {
                cout << "0 1 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c > b + d) {
        if(c <= b + d + 1 and a == 0) {
            cout << "YES\n";
            if(c == b + d + 1) cout << "2 ";
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << bb + shift << " " << cc + shift << " ";
                }
                else {
                    cout << dd + shift << " " << cc + shift << " ";
                }
            }
        }
        else if(max(b, a) == 0 and c == d + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<d;i++) {
                cout << "3 2 ";
            }
        }
        else if(max(d, a) == 0 and c == b + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<b;i++) {
                cout << "1 2 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << aa + shift << " " << bb + shift << " ";
        }
        for(int i=0;i<c;i++) {
            cout << cc + shift << " " << dd + shift << " ";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";

    if(c + a <= b + d) {
        while(a > 0) {
            cout << bb + shift << " " << aa + shift << " ";
            a--;
            b--;
        }
        while(b > 0) {
            cout << bb + shift << " " << cc + shift << " ";
            b--;
            c--;
        }
        while(c > 0) {
            cout << dd + shift << " " << cc + shift << " ";
            c--;
            d--;
        }
        if(d > 0) {
            cout << dd + shift;
        }
        return 0;
    }

    else {
        while(d > 0) {
            cout << cc + shift << " " << dd + shift << " ";
            c--;
            d--;
        }
        while(c > 0) {
            cout << cc + shift << " " << bb + shift << " ";
            b--;
            c--;
        }
        while(b > 0) {
            cout << aa + shift << " " << bb + shift << " ";
            a--;
            b--;
        }
        if(a > 0) {
            cout << aa + shift;
        }
        return 0;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int aa = 0, bb = 1, cc = 2, dd = 3, shift = 0;
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a + b + c + d == 1) {
        cout << "YES\n";
        if(a == 1) {
            cout << "0";
        }
        if(b == 1) {
            cout << "1";
        }
        if(c == 1) {
            cout << "2";
        }
        if(d == 1) {
            cout << "3";
        }
        return 0;
    }

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << bb + shift << " " << aa + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << cc + shift << " " << dd + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b > a + c) {
        if(b <= a + c + 1 and d == 0) {
            cout << "YES\n";
            if(b == a + c + 1) { cout << "1 "; b--; }
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << aa + shift << " " << bb + shift << " ";
                }
                else {
                    cout << cc + shift << " " << bb + shift << " ";
                }
            }
        }
        else if(max(a, d) == 0 and b == c + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<c;i++) {
                cout << "2 1 ";
            }
        }
        else if(max(c, d) == 0 and b == a + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<a;i++) {
                cout << "0 1 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c > b + d) {
        if(c <= b + d + 1 and a == 0) {
            cout << "YES\n";
            if(c == b + d + 1) {cout << "2 "; c--;}
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << bb + shift << " " << cc + shift << " ";
                }
                else {
                    cout << dd + shift << " " << cc + shift << " ";
                }
            }
        }
        else if(max(b, a) == 0 and c == d + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<d;i++) {
                cout << "3 2 ";
            }
        }
        else if(max(d, a) == 0 and c == b + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<b;i++) {
                cout << "1 2 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << aa + shift << " " << bb + shift << " ";
        }
        for(int i=0;i<c;i++) {
            cout << cc + shift << " " << dd + shift << " ";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";
    if(c + a > b + d) { swap(a, d); swap(b, c); swap(aa, dd); swap(bb, cc); }

    while(a > 0) {
        cout << bb + shift << " " << aa + shift << " ";
        a--;
        b--;
    }
    while(b > 0) {
        cout << bb + shift << " " << cc + shift << " ";
        b--;
        c--;
    }
    while(c > 0) {
        cout << dd + shift << " " << cc + shift << " ";
        c--;
        d--;
    }
    if(d > 0) {
        cout << dd + shift;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << "1 0 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << "2 3 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b > a + c) {
        if(b == a + c and d == 0) {
            cout << "YES\n";
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << "0 1 ";
                }
                else {
                    cout << "2 1 ";
                }
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c > b + d) {
        if(c == b + d and a == 0) {
            cout << "YES\n";
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << "1 2 ";
                }
                else {
                    cout << "3 2 ";
                }
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";

    if(c + a <= b + d) {
        while(a > 0) {
            cout << "1 0 ";
            a--;
            b--;
        }
        while(b > 0) {
            cout << "1 2 ";
            b--;
            c--;
        }
        while(c > 0) {
            cout << "3 2 ";
            c--;
            d--;
        }
        if(d > 0) {
            cout << "3\n";
        }
        return 0;
    }

    else {
        while(d > 0) {
            cout << "2 3 ";
            c--;
            d--;
        }
        while(c > 0) {
            cout << "2 1 ";
            b--;
            c--;
        }
        while(b > 0) {
            cout << "0 1 ";
            a--;
            b--;
        }
        if(a > 0) {
            cout << "0\n";
        }
        return 0;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << "1 0 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << "2 3 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b > a + c) {
        if(b == a + c and d == 0) {
            cout << "YES\n";
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << "0 1 ";
                }
                else {
                    cout << "2 1 ";
                }
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c > b + d) {
        if(c == b + d and a == 0) {
            cout << "YES\n";
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << "1 2 ";
                }
                else {
                    cout << "3 2 ";
                }
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << "0 1 ";
        }
        for(int i=0;i<c;i++) {
            cout << "2 3 ";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";

    if(c + a <= b + d) {
        while(a > 0) {
            cout << "1 0 ";
            a--;
            b--;
        }
        while(b > 0) {
            cout << "1 2 ";
            b--;
            c--;
        }
        while(c > 0) {
            cout << "3 2 ";
            c--;
            d--;
        }
        if(d > 0) {
            cout << "3\n";
        }
        return 0;
    }

    else {
        while(d > 0) {
            cout << "2 3 ";
            c--;
            d--;
        }
        while(c > 0) {
            cout << "2 1 ";
            b--;
            c--;
        }
        while(b > 0) {
            cout << "0 1 ";
            a--;
            b--;
        }
        if(a > 0) {
            cout << "0\n";
        }
        return 0;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int aa = 0, bb = 1, cc = 2, dd = 3, shift = 0;
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    while(a == 0) {
        a = b;
        b = c;
        c = d;
        d = 0;
        shift++;
    }

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << aa + shift << " " << bb + shift << " ";
        }
        for(int i=0;i<c;i++) {
            cout << cc + shift << " " << dd + shift << " ";
        }
        return 0;
    }

    if(c + a > b + d) { swap(a, d); swap(b, c); swap(aa, dd); swap(bb, cc); }

    vector <int> result;

    while(a > 0 and b > 0) {
        result.pb(bb + shift);
        result.pb(aa + shift);
        a--;
        b--;
    }

    if(a > 0) {
        result.pb(aa + shift);
        a--;
    }
    while(b > 0 and c > 0) {
        result.pb(bb + shift);
        result.pb(cc + shift);
        b--;
        c--;
    }
    if(b > 0) {
        result.pb(bb + shift);
        b--;
    }
    while(c > 0) {
        result.pb(dd + shift);
        result.pb(cc + shift);
        c--;
        d--;
    }
    if(d > 0) {
        result.pb(dd + shift);
        d--;
    }

    if(a + b + c + d != 0 or max({a, b, c, d}) != 0) {
        cout << "NO\n";
        return 0;
    }

    for(int i=1;i<result.size();i++) {
        if(abs(result[i] - result[i - 1]) != 1) {
            cout << "NO\n";
            return 0;
        }
    }

    cout << "YES\n";
    for(auto it : result) {
        cout << it << " ";
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << "1 0 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << "2 3 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b >= a + c) {
        if(b == a + c and d == 0) {
            cout << "YES\n";
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << "0 1 ";
                }
                else {
                    cout << "2 1 ";
                }
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c >= b + d) {
        if(c == b + d and a == 0) {
            cout << "YES\n";
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << "1 2 ";
                }
                else {
                    cout << "3 2 ";
                }
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";

    if(c + a <= b + d) {
        while(a > 0) {
            cout << "1 0 ";
            a--;
            b--;
        }
        while(b > 0) {
            cout << "1 2 ";
            b--;
            c--;
        }
        while(c > 0) {
            cout << "3 2 ";
            c--;
            d--;
        }
        if(d > 0) {
            cout << "3\n";
        }
        return 0;
    }

    else {
        while(d > 0) {
            cout << "2 3 ";
            c--;
            d--;
        }
        while(c > 0) {
            cout << "2 1 ";
            b--;
            c--;
        }
        while(b > 0) {
            cout << "0 1 ";
            a--;
            b--;
        }
        if(a > 0) {
            cout << "0\n";
        }
        return 0;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int aa = 0, bb = 1, cc = 2, dd = 3, shift = 0;
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a + b + c + d == 1) {
        cout << "YES\n";
        if(a == 1) {
            cout << "0";
        }
        if(b == 1) {
            cout << "1";
        }
        if(c == 1) {
            cout << "2";
        }
        if(d == 1) {
            cout << "3";
        }
        return 0;
    }

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << bb + shift << " " << aa + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << cc + shift << " " << dd + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b > a + c) {
        if(b == a + c and d == 0) {
            cout << "YES\n";
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << aa + shift << " " << bb + shift << " ";
                }
                else {
                    cout << cc + shift << " " << bb + shift << " ";
                }
            }
        }
        else if(max(a, d) == 0 and b == c + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<c;i++) {
                cout << "2 1 ";
            }
        }
        else if(max(c, d) == 0 and b == a + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<a;i++) {
                cout << "0 1 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c > b + d) {
        if(c == b + d and a == 0) {
            cout << "YES\n";
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << bb + shift << " " << cc + shift << " ";
                }
                else {
                    cout << dd + shift << " " << cc + shift << " ";
                }
            }
        }
        else if(max(b, a) == 0 and c == d + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<d;i++) {
                cout << "3 2 ";
            }
        }
        else if(max(d, a) == 0 and c == b + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<b;i++) {
                cout << "1 2 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << aa + shift << " " << bb + shift << " ";
        }
        for(int i=0;i<c;i++) {
            cout << cc + shift << " " << dd + shift << " ";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";

    if(c + a <= b + d) {
        while(a > 0) {
            cout << bb + shift << " " << aa + shift << " ";
            a--;
            b--;
        }
        while(b > 0) {
            cout << bb + shift << " " << cc + shift << " ";
            b--;
            c--;
        }
        while(c > 0) {
            cout << dd + shift << " " << cc + shift << " ";
            c--;
            d--;
        }
        if(d > 0) {
            cout << dd + shift;
        }
        return 0;
    }

    else {
        while(d > 0) {
            cout << cc + shift << " " << dd + shift << " ";
            c--;
            d--;
        }
        while(c > 0) {
            cout << cc + shift << " " << bb + shift << " ";
            b--;
            c--;
        }
        while(b > 0) {
            cout << aa + shift << " " << bb + shift << " ";
            a--;
            b--;
        }
        if(a > 0) {
            cout << aa + shift;
        }
        return 0;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define rep(i,a,b)  for (__typeof((b)) i=(a);i<=(b);i++)
#define nrep(i,a,b)  for (__typeof((b)) i=(b);i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL)
const ll N = 1e5 + 5;
const ll N1 = 3e5 + 5;
const int LOGN = 17;
const ll mod = 1e9 + 7;

int main() {

    int aa = 0, bb = 1, cc = 2, dd = 3, shift = 0;
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(a + b + c + d == 1) {
        cout << "YES\n";
        if(a == 1) {
            cout << "0";
        }
        if(b == 1) {
            cout << "1";
        }
        if(c == 1) {
            cout << "2";
        }
        if(d == 1) {
            cout << "3";
        }
        return 0;
    }

    if(a > b) {
        if(a == b + 1 and max(c, d) == 0) {
            cout << "YES\n0 ";
            for(int i=0;i<b;i++) {
                cout << bb + shift << " " << aa + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(d > c) {
        if(d == c + 1 and max(a, b) == 0) {
            cout << "YES\n3 ";
            for(int i=0;i<c;i++) {
                cout << cc + shift << " " << dd + shift << " ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(b > a + c) {
        if(b <= a + c + 1 and d == 0) {
            cout << "YES\n";
            if(b == a + c + 1) { cout << "1 "; b--; }
            for(int i=0;i<b;i++) {
                if(i < a) {
                    cout << aa + shift << " " << bb + shift << " ";
                }
                else {
                    cout << cc + shift << " " << bb + shift << " ";
                }
            }
        }
        else if(max(a, d) == 0 and b == c + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<c;i++) {
                cout << "2 1 ";
            }
        }
        else if(max(c, d) == 0 and b == a + 1) {
            cout << "YES\n";
            cout << "1 ";
            for(int i=0;i<a;i++) {
                cout << "0 1 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(c > b + d) {
        if(c <= b + d + 1 and a == 0) {
            cout << "YES\n";
            if(c == b + d + 1) {cout << "2 "; c--;}
            for(int i=0;i<c;i++) {
                if(i < b) {
                    cout << bb + shift << " " << cc + shift << " ";
                }
                else {
                    cout << dd + shift << " " << cc + shift << " ";
                }
            }
        }
        else if(max(b, a) == 0 and c == d + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<d;i++) {
                cout << "3 2 ";
            }
        }
        else if(max(d, a) == 0 and c == b + 1) {
            cout << "YES\n";
            cout << "2 ";
            for(int i=0;i<b;i++) {
                cout << "1 2 ";
            }
        }
        else {
            cout << "NO\n";
        }
        return 0;
    }

    if(a == b and c == d) {
        cout << "YES\n";
        for(int i=0;i<a;i++) {
            cout << aa + shift << " " << bb + shift << " ";
        }
        for(int i=0;i<c;i++) {
            cout << cc + shift << " " << dd + shift << " ";
        }
        return 0;
    }

    if(abs((a + c) - (b + d)) > 1) {
        cout << "NO\n";
        return 0;
    }
    else cout << "YES\n";

    if(c + a <= b + d) {
        while(a > 0) {
            cout << bb + shift << " " << aa + shift << " ";
            a--;
            b--;
        }
        while(b > 0) {
            cout << bb + shift << " " << cc + shift << " ";
            b--;
            c--;
        }
        while(c > 0) {
            cout << dd + shift << " " << cc + shift << " ";
            c--;
            d--;
        }
        if(d > 0) {
            cout << dd + shift;
        }
        return 0;
    }

    else {
        while(d > 0) {
            cout << cc + shift << " " << dd + shift << " ";
            c--;
            d--;
        }
        while(c > 0) {
            cout << cc + shift << " " << bb + shift << " ";
            b--;
            c--;
        }
        while(b > 0) {
            cout << aa + shift << " " << bb + shift << " ";
            a--;
            b--;
        }
        if(a > 0) {
            cout << aa + shift;
        }
        return 0;
    }

    return 0;
}