X, K, D = list(map(int ,input().split()))



if K * D < abs(X):

    ans = abs(X) - K * D

else:

    if abs(X) // D % 2 == 0:

        if K % 2 == 0:

            ans = abs(X) % D

        else:

            ans = abs(abs(X) % D - D)

    else:

        if K % 2 == 0:

            ans = abs(abs(X) % D - D)

        else:

            ans = abs(X) % D



print(ans)
X, K, D = list(map(int ,input().split()))



X = abs(X)

if K * D < X:

    ans = X - K * D

else:

    if X // D % 2 == 0:

        if K % 2 == 0:

            ans = X % D

        else:

            ans = abs(X % D - D)

    else:

        if K % 2 == 0:

            ans = abs(X % D - D)

        else:

            ans = X % D



print(ans)

X, K, D = list(map(int, input().split()))
if K * D < abs(X):
    ans = abs(X) - K * D
else:
    if abs(X) // D % 2 == 0:
        if K % 2 == 0:
            ans = abs(X) % D
        else:
            ans = abs(abs(X) % D - D)
    else:
        if K % 2 == 0:
            ans = abs(abs(X) % D - D)
        else:
            ans = abs(X) % D
print(ans)

X, K, D = list(map(int, input().split()))
X = abs(X)
if K * D < X:
    ans = X - K * D
else:
    if X // D % 2 == 0:
        if K % 2 == 0:
            ans = X % D
        else:
            ans = abs(X % D - D)
    else:
        if K % 2 == 0:
            ans = abs(X % D - D)
        else:
            ans = X % D
print(ans)

-if K * D < abs(X): -    ans = abs(X) - K * D +X = abs(X) +if K * D < X: +    ans = X - K * D -    if abs(X) // D % 2 == 0: +    if X // D % 2 == 0: -            ans = abs(X) % D +            ans = X % D -            ans = abs(abs(X) % D - D) +            ans = abs(X % D - D) -            ans = abs(abs(X) % D - D) +            ans = abs(X % D - D) -            ans = abs(X) % D +            ans = X % D