#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
unordered_map<long long, long long> m;
unordered_map<long long, bool> is;
long long a, b, k;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin>>a>>b>>k;
    m[a]=0;
    is[a]=true;
    for(int i=a; i<b; i++){
        if(i%k==0) continue;
        if(is[i+1]==true) m[i+1]=min(m[i]+1, m[i+1]);
        else{
            m[i+1]=m[i]+1;
            is[i+1]=true;
        }
        if(is[i+2]==true) m[i+2]=min(m[i]+1, m[i+1]);
        else{
            m[i+2]=m[i]+1;
            is[i+2]=true;
        }
    }
    cout<<m[b];
    return 0;
}

