#include <bits/stdc++.h>
using namespace std;
long long int powr(int s, int p) {
  if (p == 0) return 1;
  if (p % 2 == 1) {
    long long int q = powr(s, p / 2);
    long long int a = q;
    q = (a * a);
    q = (q * s);
    return (q);
  } else {
    long long int q = powr(s, p / 2);
    long long int a = q;
    q = (a * a);
    return (q);
  }
}
long long int n;
int k;
long long int binsearch(long long int v, long long int n) {
  long long int lo = v;
  long long int hi = v * k;
  while (lo < hi) {
    long long int sol = lo + (hi - lo) / 2;
    long long int s = 0;
    long long int p = 1;
    while ((sol / p) > 0) {
      s += sol / p;
      p *= k;
    }
    if (s >= n)
      hi = sol;
    else if (s < n)
      lo = sol + 1;
  }
  return hi;
}
int main() {
  cin >> n;
  cin >> k;
  long long int v = 1;
  long long int s = 0;
  int i = 1;
  while (1) {
    s += v * k;
    if (s >= n) break;
    i++;
    v = v * k;
  }
  v = powr(k, i - 1);
  cout << binsearch(v, n) << "\n";
  return 0;
}
