N,K,M = map(int,input().split()) def f(l,r,x): k = r - l + 1 if l % pow(M,x) == 0: return (k + pow(M,x)-1) // pow(M,x) return (k+ l % pow(M,x) + pow(M,x)-1) // pow(M,x) -1 def g(l,r): x = 1 res = 0 while pow(M,x) <= r: res += f(l,r,x) x += 1 return res up = g(N-K+1,N) down = g(1,K) print(up -down)