import 'dart:io';

void main() {
  List xkd = stdin.readLineSync().split(" ").map((x) => int.parse(x)).toList();

  int x = (xkd[0]).abs();
  int k = xkd[1];
  int d = xkd[2];

  int ans;
  if (x == 0) {
    ans = (k % 2 == 0) ? 0 : d;
  } else if (x >= k * d) {
    ans = x - (k * d);
  } else if (d >= x) {
    ans = (k % 2 == 0) ? x : (d - x).abs();
  } else {
    int a = (x / d).floor();
    int b = x % d;
    if (((k - a) % 2 == 0)) {
      ans = b;
    } else {
      if (b <= (d - b)) {
        ans = b;
      } else {
        ans = d - b;
      }
    }
  }
  print(ans);
}