#include <iostream>
#include <cstring>
using namespace std;
int* solve(int* seed, int seedn, int seedsum, int n, int a, int b)
{
for (int i = b; i >= a; i--)
{
if (seedsum + i <= n)
{
int *seed1 = new int[seedn + 1];
if (seedn > 0);
memcpy(seed1, seed, sizeof(int) * (seedn));
seed1[seedn] = i;
if (seedsum + i == n) return seed1;
int * p = solve(seed1, seedn + 1, seedsum + i, n, a, b);
if (p != NULL) return p;
}
}
return NULL;
}
int main()
{
int n, a, b;
cin >> n >> a >> b;
int *p = solve(NULL, 0, 0, n, a, b);
if (p == NULL)
cout << "NO" << endl;
else
{
int sum = n;
int i = 0;
while (sum > 0)
{
i++;
sum -= *p;
p++;
}
p = p - i;
cout << "YES" << endl;
for (int j = i - 1; j >= 0; j--)
cout << p[j] << " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCogc29sdmUoaW50KiBzZWVkLCBpbnQgc2VlZG4sIGludCBzZWVkc3VtLCBpbnQgbiwgaW50IGEsIGludCBiKQp7Cglmb3IgKGludCBpID0gYjsgaSA+PSBhOyBpLS0pCgl7CgkJaWYgKHNlZWRzdW0gKyBpIDw9IG4pCgkJewoJCQlpbnQgKnNlZWQxID0gbmV3IGludFtzZWVkbiArIDFdOwoJCQlpZiAoc2VlZG4gPiAwKTsKCQkJCW1lbWNweShzZWVkMSwgc2VlZCwgc2l6ZW9mKGludCkgKiAoc2VlZG4pKTsKCQkJc2VlZDFbc2VlZG5dID0gaTsKCQkJaWYgKHNlZWRzdW0gKyBpID09IG4pIHJldHVybiBzZWVkMTsKCQkJaW50ICogcCA9IHNvbHZlKHNlZWQxLCBzZWVkbiArIDEsIHNlZWRzdW0gKyBpLCBuLCBhLCBiKTsKCQkJaWYgKHAgIT0gTlVMTCkgcmV0dXJuIHA7IAoJCX0KCX0KCXJldHVybiBOVUxMOwp9CmludCBtYWluKCkKewoJaW50IG4sIGEsIGI7CgljaW4gPj4gbiA+PiBhID4+IGI7CglpbnQgKnAgPSBzb2x2ZShOVUxMLCAwLCAwLCBuLCBhLCBiKTsKCWlmIChwID09IE5VTEwpCgkJY291dCA8PCAiTk8iIDw8IGVuZGw7CgllbHNlCgl7CgkJaW50IHN1bSA9IG47CgkJaW50IGkgPSAwOwoJCXdoaWxlIChzdW0gPiAwKQoJCXsKCQkJaSsrOwoJCQlzdW0gLT0gKnA7CgkJCXArKzsKCQl9CgkJcCA9IHAgLSBpOwoJCWNvdXQgPDwgIllFUyIgPDwgZW5kbDsKCQlmb3IgKGludCBqID0gaSAtIDE7IGogPj0gMDsgai0tKQoJCQljb3V0IDw8IHBbal0gPDwgIiAiOwoJfQogICByZXR1cm4gMDsKfQ==