fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun findAns 0 0 _ = 0 | findAns 0 y l = if 0 < y then (y + l - 1) div l else ((abs y + l - 1) div l) + 2 | findAns x 0 l = ((abs x + l - 1) div l) + 1 | findAns x y l = if 0 < x andalso 0 < y then ((y + l - 1) div l) + ((x + l - 1) div l) + 1 else if 0 < x andalso y < 0 then ((x + l - 1) div l) + 1 + ((abs y + l - 1) div l) + 1 else if x < 0 andalso 0 < y then ((y + l - 1) div l) + ((abs x + l - 1) div l) + 1 else (* x < 0 andalso y < 0 *) ((abs x + l - 1) div l) + 1 + ((abs y + l - 1) div l) + 1 val () = let val x = readInt () val y = readInt () val l = readInt () val ans = findAns x y l in print (Int.toString ans) end