import java.util.Scanner; // これ問題文が説明不足じゃね // 問題文 // 太郎君はロボットを遠隔で操縦している。 // このロボットは現在(0,0)の座標に立っていて北の方向を向いている。 // 太郎君はいまこのロボットを(X,Y)の座標に移動させたいと思っている。 // ロボットに出来る命令は、1回につき以下のうちいずれかの命令を選んで指示することができる。 // ・時計回りに、90∘ その場で向き(進行方向)を変える。 // ・反時計回りに、90∘ その場で向き(進行方向)を変える。 // ・向いている方向に K距離だけ前進する。Kは、(1≤K≤L) の範囲で、命令のたびに指定することができる。 // *** // 入力 // X // Y // L // 1行目に、移動先の東西軸座標を表す整数 X (−109≤X≤109) が与えられる。正の方向を東とする。 // 2行目に、移動先の南北軸座標を表す整数 Y (−109≤Y≤109) が与えられる。正の方向を北とする。 // 3行目に、ロボットが1命令につき前進することができる最大の距離を表す整数 L (1≤L≤109) が与えられる。 // *** // 出力 // ロボットが移動先に到達するまでに必要な最小の命令回数を出力してください。 // 最後に改行してください。 public class No48 { public static void main(String[] args) { // 標準入力から読み込む際に、Scannerオブジェクトを使う。 Scanner sc = new Scanner(System.in); int X = sc.nextInt(); int Y = sc.nextInt(); int L = sc.nextInt(); int count = 0; int temp = 0; // Yの移動 temp = Math.abs(Y); while(temp > L) { temp -= L; count++; // System.out.println("Y"); } if(temp > 0) { count++; // System.out.println("YY"); } // Xの移動 temp = Math.abs(X); while(temp > L) { temp -= L; count++; // System.out.println("X"); } if(temp > 0) { count++; // System.out.println("XX"); } // 座標の位置による方向転換の回数 if(X == 0 && Y > 0) { // Nothing }else if(X != 0 && Y >= 0) { count += 1; // System.out.println("ZZZ"); }else if(Y < 0) { count += 2; // System.out.println("Z"); }else { // Nothing } System.out.println(count); } }