#include <bits/stdc++.h>
#define ll long long
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
ll factorial(ll n) { ll f=1; for (ll i=1;i<=n; i++) f*=i; return f; }
ll gcd(ll a,ll b) { while(b) { ll x = a; a = b; b = x % b; } return a; }
ll lcm(ll a,ll b) { return a / gcd(a, b) * b; }
ll Closest_to_right(ll x, vector <ll> n) {
ll l=0, r=n.size(),md;
while (l+1 < r) {
md = l + (r-l)/2;
if (n[md] >= x) r = md;
else l = md;
}
return r;
}
ll Closest_to_left(ll x, vector <ll> n) {
ll l=0, r=n.size(),md;
while (l+1 < r) {
md = l + (r-l)/2;
if (n[md] > x) r = md;
else l = md;
}
return l;
}
ll sum(ll x, ll k) {
ll s=0;
while (x != 0) {
s += x;
x /= k;
}
return s;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
int n, k; cin >> n >> k;
ll l=1, r=1e9, md = l + (r-l)/2;
while (r-l > 1) {
md = l + (r-l)/2;
if (sum(md, k) >= n) r = md;
else l = md;
}
cout << r;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCgojaW5jbHVkZSA8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPgp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKI2RlZmluZSBvcmRlcmVkX3NldCB0cmVlPGludCwgbnVsbF90eXBlLGxlc3M8aW50PiwgcmJfdHJlZV90YWcsdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxsIGZhY3RvcmlhbChsbCBuKSB7IGxsIGY9MTsgZm9yIChsbCBpPTE7aTw9bjsgaSsrKSBmKj1pOyByZXR1cm4gZjsgfQpsbCBnY2QobGwgYSxsbCBiKSB7IHdoaWxlKGIpIHsgbGwgeCA9IGE7IGEgPSBiOyBiID0geCAlIGI7IH0gcmV0dXJuIGE7IH0KbGwgbGNtKGxsIGEsbGwgYikgeyByZXR1cm4gYSAvIGdjZChhLCBiKSAqIGI7IH0KbGwgQ2xvc2VzdF90b19yaWdodChsbCB4LCB2ZWN0b3IgPGxsPiBuKSB7CiAgICBsbCBsPTAsIHI9bi5zaXplKCksbWQ7CiAgICB3aGlsZSAobCsxIDwgcikgewogICAgICAgIG1kID0gbCArIChyLWwpLzI7CiAgICAgICAgaWYgKG5bbWRdID49IHgpIHIgPSBtZDsKICAgICAgICBlbHNlICAgICAgICAgICAgbCA9IG1kOwogICAgfQogICAgcmV0dXJuIHI7Cn0KbGwgQ2xvc2VzdF90b19sZWZ0KGxsIHgsIHZlY3RvciA8bGw+IG4pIHsKICAgIGxsIGw9MCwgcj1uLnNpemUoKSxtZDsKICAgIHdoaWxlIChsKzEgPCByKSB7CiAgICAgICAgbWQgPSBsICsgKHItbCkvMjsKICAgICAgICBpZiAoblttZF0gPiB4KSByID0gbWQ7CiAgICAgICAgZWxzZSAgICAgICAgICAgbCA9IG1kOwogICAgfQogICAgcmV0dXJuIGw7Cn0KCgpsbCBzdW0obGwgeCwgbGwgaykgewoKICAgIGxsIHM9MDsKCiAgICB3aGlsZSAoeCAhPSAwKSB7CiAgICAgICAgcyArPSB4OwogICAgICAgIHggLz0gazsKICAgIH0KCiAgICByZXR1cm4gczsKCn0KCmludCBtYWluKCkKewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShudWxscHRyKSwgY291dC50aWUobnVsbHB0cik7CgoKICAgIGludCBuLCBrOyBjaW4gPj4gbiA+PiBrOwoKCiAgICBsbCBsPTEsIHI9MWU5LCBtZCA9IGwgKyAoci1sKS8yOwoKICAgIHdoaWxlIChyLWwgPiAxKSB7CgogICAgICAgIG1kID0gbCArIChyLWwpLzI7CgogICAgICAgIGlmIChzdW0obWQsIGspID49IG4pIHIgPSBtZDsKICAgICAgICBlbHNlIGwgPSBtZDsKCiAgICB9CgogICAgY291dCA8PCByOwoKCglyZXR1cm4gMDsKCn0K