// I SELL YOU...! 
#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
#include<queue>
#include<chrono>
#include<iomanip>
#include<map>
#include<set>
using namespace std;
using ll = long long;
using P = pair<ll,ll>;
using TP = tuple<ll,ll,ll>;
void init_io(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  cout << fixed << setprecision(18);
}
map<ll, ll> mp;
ll calc(ll h,ll a) {
  ll res;
  if (h == 0) {
    return 0;
  }
  auto itr = mp.find(h);
  if (itr == mp.end()) {
    res = 2 * calc(h/a, a) + 1;
    mp[h] = res;
  } else {
    res = itr->second;
  }
  return res;
}
signed main(){
  init_io();
  ll h, a;
  cin >> h >> a;
  cout << calc(h, a) << endl;
}