x, k, d = map(int, input().split())

x = abs(x)
if x ==0:
    ans = d * (k % 2)
elif x - d * k  >= 0:
    ans = x - d * k
else:
    if abs(x - x // d * d) <= abs(x - (x // d + 1) * d):
        div = x // d
    else:
        div = x // d + 1
    if (k - div) % 2 == 0:
        ans = abs(x - d * div)
    else:
        ans = min(abs(x - d * div + d),abs(x - d * div - d))
print(ans) x, k, d = map(int, input().split()) x map(int, input().split()) map int input().split() ().split () input split k d x = abs(x) x abs(x) abs x if x ==0:
    ans = d * (k % 2)
elif x - d * k  >= 0:
    ans = x - d * k
else:
    if abs(x - x // d * d) <= abs(x - (x // d + 1) * d):
        div = x // d
    else:
        div = x // d + 1
    if (k - div) % 2 == 0:
        ans = abs(x - d * div)
    else:
        ans = min(abs(x - d * div + d),abs(x - d * div - d)) x ==0 x 0 ans = d * (k % 2) ans d * (k % 2) d k % 2 k 2 elif x - d * k  >= 0:
    ans = x - d * k x - d * k  >= 0 x - d * k x d * k d k 0 ans = x - d * k ans x - d * k x d * k d k if abs(x - x // d * d) <= abs(x - (x // d + 1) * d):
        div = x // d
    else:
        div = x // d + 1
     abs(x - x // d * d) <= abs(x - (x // d + 1) * d) abs(x - x // d * d) abs x - x // d * d x x // d * d x // d x d d abs(x - (x // d + 1) * d) abs x - (x // d + 1) * d x (x // d + 1) * d x // d + 1 x // d x d 1 d div = x // d div x // d x d div = x // d + 1 div x // d + 1 x // d x d 1 if (k - div) % 2 == 0:
        ans = abs(x - d * div)
    else:
        ans = min(abs(x - d * div + d),abs(x - d * div - d)) (k - div) % 2 == 0 (k - div) % 2 k - div k div 2 0 ans = abs(x - d * div) ans abs(x - d * div) abs x - d * div x d * div d div ans = min(abs(x - d * div + d),abs(x - d * div - d)) ans min(abs(x - d * div + d),abs(x - d * div - d)) min abs(x - d * div + d) abs x - d * div + d x - d * div x d * div d div d abs(x - d * div - d) abs x - d * div - d x - d * div x d * div d div d print(ans) print ans k, d = map(int, input().split()) map(int, input().split()) k div = x // d x // d div ans = d * (k % 2) d * (k % 2) ans x, k, d = map(int, input().split()) map(int, input().split()) x ans = abs(x - d * div) abs(x - d * div) ans ans = min(abs(x - d * div + d),abs(x - d * div - d)) min(abs(x - d * div + d),abs(x - d * div - d)) ans x = abs(x) abs(x) x div = x // d + 1 x // d + 1 div d = map(int, input().split()) map(int, input().split()) d ans = x - d * k x - d * k ans
x, k, d = map(int, input().split())

x = abs(x)
if x ==0:
    ans = d * (k % 2)
elif x - d * k  >= 0:
    ans = x - d * k
else:
    if abs(x - x // d * d) <= abs(x - (x // d + 1) * d):
        div = x // d
    else:
        div = x // d + 1
    if (k - div) % 2 == 0:
        ans = abs(x - d * div)
    else:
        ans = min(abs(x - d * div + d),abs(x - d * div - d))
print(ans)