#include<cstdio>
#include<vector>
#include<string>
#include<iostream>
#include<queue>
#include<algorithm>
#define maxn 101
using namespace std;
bool checkv(vector<int> v) {
if (v.size() == 1) return true;
int len = v.size();
for (int i = 0; i * 2 < len - 1; i++) {
if (v[i] != v[len - 1 - i]) return false;
}
return true;
}
int main() {
int n, b;
scanf("%d %d", &n, &b);
int t = n;
vector<int> v;
while(t != 0) {
v.push_back(t % b);
t /= b;
}
if (checkv(v)) printf("Yes\n");
else printf("No\n");
for (int i = v.size() - 1; i >= 0; i--) {
printf("%d", v[i]);
if (i != 0) printf(" ");
else printf("\n");
}
return 0;
}