// 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; }