const { SSL_OP_SSLEAY_080_CLIENT_DH_BUG } = require("constants");

function Main(input) {
  input = input.split("\n");
  var ans =0;
  var X = BigInt(input[0].split(" ")[0]);
  var K = BigInt(input[0].split(" ")[1]);
  var D = BigInt(input[0].split(" ")[2]);
  if(X==0n){
    if(D%2n==0){
      ans=0;
    }else{
      ans=toString(K);
    }
  }else if(X<0n){
    var Xn=X;
    for(var i=0n;i<K;i++){
      if(Xn<0n){
        Xn=Xn+D;
      }else{
        Xn=Xn-D;
      }
    }
    if(Xn<0n){
      ans=(-Xn).toString();
    }else{
      ans=Xn.toString();
    }
  }else{
    var Xn=X;
    for(var i=0n;i<K;i++){
      if(Xn>0n){
        Xn=Xn-D;
      }else{
        Xn=Xn+D;
      }
    }
    if(Xn<0n){
      ans=(-Xn).toString();
    }else{
      ans=Xn.toString();
    }
  }


  console.log('%s', ans);
  return ans;
}

function debug(n){
  var input = document.getElementById("input"+n).value;
  var ans=Main(input);
  var result="WA";
  if(ans==document.getElementById("output"+n).value.split("\n")[0]){
    result="AC";
  }
  document.getElementById("result"+n).innerHTML=result;
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));