/*#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,k;
cin>>a>>b>>k;
long long skokove=0;
long long sega=a;
while(sega<b){
    if((sega+2)%k==0){
        sega++;
        skokove++;
    }else{
        sega=sega+2;
        skokove++;
    }
}
cout<<skokove<<endl;
return 0;
}*/
///nachin dve
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,k;
cin>>a>>b>>k;
long long skokove=0;
long long firstK,lastK;
firstK=a/k+1;
lastK=b/k;
if(lastK<firstK){
    if((b-a)%2==0){
        skokove=(b-a)/2;
    }else{
        skokove=(b-a+1)/2;
    }
}else{
    ///ima K mevdu tqh
    skokove=skokove+(firstK*k-a)/2+1;
    ///dobavihme ot a do firstK

    if(k%2==0){
        skokove=skokove+(lastK-firstK)*(k/2);
    }else{
        skokove=skokove+(lastK-firstK)*((k+1)/2);
    }
    ///dobavihme ot k do k

    if((b-lastK*k)%2==0){
        skokove=skokove+(b-lastK*k)/2;
    }else{
        skokove=skokove+(b-lastK*k-1)/2;
    }
}
cout<<skokove<<endl;
return 0;
}
