#C問題
import numpy as np
X,K,D = map(int, input().split())
ans = 0
if X >= 0 :
    if int(X/D)<=K:
        if int(X/D)%2==K%2:
            ans = X%D
        else:
            ans = D-X%D
    else:
        ans = abs(X-K*D)       
if X < 0 :
    if abs(int(X/D))<=K:
        if abs(int(X/D))%2==K%2:
            ans = abs(X)%D
        else:
            ans = D-abs(X)%D
    else:
        ans = abs(X+K*D)          
print(ans) import numpy as np numpy X,K,D = map(int, input().split()) X map(int, input().split()) map int input().split() ().split () input split K D ans = 0 ans 0 if X >= 0 :
    if int(X/D)<=K:
        if int(X/D)%2==K%2:
            ans = X%D
        else:
            ans = D-X%D
    else:
        ans = abs(X-K*D)        X >= 0 X 0 if int(X/D)<=K:
        if int(X/D)%2==K%2:
            ans = X%D
        else:
            ans = D-X%D
    else:
        ans = abs(X-K*D)        int(X/D)<=K int(X/D) int X/D X D K if int(X/D)%2==K%2:
            ans = X%D
        else:
            ans = D-X%D
     int(X/D)%2==K%2 int(X/D)%2 int(X/D) int X/D X D 2 K%2 K 2 ans = X%D ans X%D X D ans = D-X%D ans D-X%D D X%D X D ans = abs(X-K*D) ans abs(X-K*D) abs X-K*D X K*D K D if X < 0 :
    if abs(int(X/D))<=K:
        if abs(int(X/D))%2==K%2:
            ans = abs(X)%D
        else:
            ans = D-abs(X)%D
    else:
        ans = abs(X+K*D)           X < 0 X 0 if abs(int(X/D))<=K:
        if abs(int(X/D))%2==K%2:
            ans = abs(X)%D
        else:
            ans = D-abs(X)%D
    else:
        ans = abs(X+K*D)           abs(int(X/D))<=K abs(int(X/D)) abs int(X/D) int X/D X D K if abs(int(X/D))%2==K%2:
            ans = abs(X)%D
        else:
            ans = D-abs(X)%D
     abs(int(X/D))%2==K%2 abs(int(X/D))%2 abs(int(X/D)) abs int(X/D) int X/D X D 2 K%2 K 2 ans = abs(X)%D ans abs(X)%D abs(X) abs X D ans = D-abs(X)%D ans D-abs(X)%D D abs(X)%D abs(X) abs X D ans = abs(X+K*D) ans abs(X+K*D) abs X+K*D X K*D K D print(ans) print ans D = map(int, input().split()) map(int, input().split()) D ans = D-abs(X)%D D-abs(X)%D ans ans = abs(X-K*D) abs(X-K*D) ans ans = X%D X%D ans ans = D-X%D D-X%D ans X,K,D = map(int, input().split()) map(int, input().split()) X ans = abs(X+K*D) abs(X+K*D) ans K,D = map(int, input().split()) map(int, input().split()) K ans = 0 0 ans ans = abs(X)%D abs(X)%D ans
#C問題
import numpy as np
X,K,D = map(int, input().split())
ans = 0
if X >= 0 :
    if int(X/D)<=K:
        if int(X/D)%2==K%2:
            ans = X%D
        else:
            ans = D-X%D
    else:
        ans = abs(X-K*D)       
if X < 0 :
    if abs(int(X/D))<=K:
        if abs(int(X/D))%2==K%2:
            ans = abs(X)%D
        else:
            ans = D-abs(X)%D
    else:
        ans = abs(X+K*D)          
print(ans)