#include <bits/stdc++.h>
using namespace std;
int intcmp(const void *v1, const void *v2) { return *(int *)v1 - *(int *)v2; }
long long minn(long long v1, long long v2) { return v1 < v2 ? v1 : v2; }
long long maxx(long long v1, long long v2) { return v1 > v2 ? v1 : v2; }
vector<long long> ans;
int main() {
  long long p, k;
  cin >> p >> k;
  int swi = 0;
  while (p != 0) {
    if (p % k == 0) {
      ans.push_back(0);
    } else {
      if (swi == 0) {
        ans.push_back(p % k);
      } else {
        ans.push_back(k - p % k);
        p += k - p % k;
      }
    }
    p /= k;
    swi ^= 1;
  }
  cout << ans.size() << endl;
  cout << ans[0];
  for (int i = 1; i < ans.size(); i++) cout << " " << ans[i];
  cout << endl;
  return 0;
}
