x,k,d = map(int,input().split())
y = abs(x)//d
if y >= k:
        ans = abs(abs(x)-d*k)

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

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

else:
        if (k-y)% 2 == 0:
                ans = abs(abs(x)-d*y)
        else:
                ans = min(abs(abs(x)-d*y+d),abs(abs(x)-d*y-d))
print(ans)