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

if x >= k*d:
    ans = x - k*d
elif k&1:
    ans = min((x-d)%(2*d), 2*d - (x-d)%(2*d) )
else:
    ans = min(x%(2*d), 2*d - x%(2*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 >= k*d:
    ans = x - k*d
elif k&1:
    ans = min((x-d)%(2*d), 2*d - (x-d)%(2*d) )
else:
    ans = min(x%(2*d), 2*d - x%(2*d)) x >= k*d x k*d k d ans = x - k*d ans x - k*d x k*d k d elif k&1:
    ans = min((x-d)%(2*d), 2*d - (x-d)%(2*d) ) k&1 k 1 ans = min((x-d)%(2*d), 2*d - (x-d)%(2*d) ) ans min((x-d)%(2*d), 2*d - (x-d)%(2*d) ) min (x-d)%(2*d) x-d x d 2*d 2 d 2*d - (x-d)%(2*d) 2*d 2 d (x-d)%(2*d) x-d x d 2*d 2 d ans = min(x%(2*d), 2*d - x%(2*d)) ans min(x%(2*d), 2*d - x%(2*d)) min x%(2*d) x 2*d 2 d 2*d - x%(2*d) 2*d 2 d x%(2*d) x 2*d 2 d print(ans) print ans d = map(int, input().split()) map(int, input().split()) d x, k, d = map(int, input().split()) map(int, input().split()) x k, d = map(int, input().split()) map(int, input().split()) k x = abs(x) abs(x) x ans = min(x%(2*d), 2*d - x%(2*d)) min(x%(2*d), 2*d - x%(2*d)) ans ans = x - k*d x - k*d ans ans = min((x-d)%(2*d), 2*d - (x-d)%(2*d) ) min((x-d)%(2*d), 2*d - (x-d)%(2*d) ) ans
x, k, d = map(int, input().split())
x = abs(x)

if x >= k*d:
    ans = x - k*d
elif k&1:
    ans = min((x-d)%(2*d), 2*d - (x-d)%(2*d) )
else:
    ans = min(x%(2*d), 2*d - x%(2*d))

print(ans)