X,K,D = map(int,input().split())
X = abs(X)
ans = 0

if X>=D and D*K<=X:
  ans = X - D*K
if X>=D and D*K>X:
  K=K-int(X/D)
  X=X%D
  if K%2==0:
    ans=X
  else:
    ans = abs(X-D)
if X<D:
  if K%2==0:
    ans = X
  else:
    ans = abs(X-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 ans = 0 ans 0 if X>=D and D*K<=X:
  ans = X - D*K X>=D and D*K<=X X>=D X D D*K<=X D*K D K X ans = X - D*K ans X - D*K X D*K D K if X>=D and D*K>X:
  K=K-int(X/D)
  X=X%D
  if K%2==0:
    ans=X
  else:
    ans = abs(X-D) X>=D and D*K>X X>=D X D D*K>X D*K D K X K=K-int(X/D) K K-int(X/D) K int(X/D) int X/D X D X=X%D X X%D X D if K%2==0:
    ans=X
  else:
    ans = abs(X-D) K%2==0 K%2 K 2 0 ans=X ans X ans = abs(X-D) ans abs(X-D) abs X-D X D if X<D:
  if K%2==0:
    ans = X
  else:
    ans = abs(X-D) X<D X D if K%2==0:
    ans = X
  else:
    ans = abs(X-D) K%2==0 K%2 K 2 0 ans = X ans X ans = abs(X-D) ans abs(X-D) abs X-D X D print(ans) print ans ans = abs(X-D) abs(X-D) ans X,K,D = map(int,input().split()) map(int,input().split()) X X=X%D X%D X D = map(int,input().split()) map(int,input().split()) D K=K-int(X/D) K-int(X/D) K ans=X X ans ans = X X ans X = abs(X) abs(X) X ans = 0 0 ans ans = abs(X-D) abs(X-D) ans K,D = map(int,input().split()) map(int,input().split()) K ans = X - D*K X - D*K ans
X,K,D = map(int,input().split())
X = abs(X)
ans = 0

if X>=D and D*K<=X:
  ans = X - D*K
if X>=D and D*K>X:
  K=K-int(X/D)
  X=X%D
  if K%2==0:
    ans=X
  else:
    ans = abs(X-D)
if X<D:
  if K%2==0:
    ans = X
  else:
    ans = abs(X-D)

print(ans)  