#include <bits/stdc++.h>
using namespace std;
long long getX(long long n, long long k) {
  if (n >= 0) return -n / k;
  return (-n + k - 1) / k;
}
int main() {
  long long p, k;
  cin >> p >> k;
  if (k > p) return cout << "1\n" << p, 0;
  long long a0 = -p / k;
  vector<long long> ans(1, k * a0 + p);
  while (!(a0 > 0 && a0 < k)) {
    long long a1 = getX(a0, k);
    ans.push_back(a1 * k + a0);
    a0 = a1;
    if (ans.size() >= 1e6) return cout << -1, 0;
  }
  ans.push_back(a0);
  cout << ans.size() << "\n";
  for (int i = 0; i < ans.size(); ++i) cout << ans[i] << " ";
}
