import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	}


} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {

	public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	}


} Main public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	} main {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	} BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); in new BufferedReader(new InputStreamReader(System.in)) String W = in.readLine(); W in.readLine() in.readLine in String[] Ws = W.split(" "); Ws W.split(" ") W.split W " " int N = Integer.parseInt(Ws[0]); N Integer.parseInt(Ws[0]) Integer.parseInt Integer Ws[0] Ws 0 int D = Integer.parseInt(Ws[1]); D Integer.parseInt(Ws[1]) Integer.parseInt Integer Ws[1] Ws 1 double x = N/((2.0*D)+1); x N/((2.0*D)+1) N ((2.0*D)+1) (2.0*D) 2.0 D 1 long ans = (long)x; ans (long)x if(x-ans > 0){
			ans++;
		} x-ans > 0 x-ans x ans 0 {
			ans++;
		} ans++ ans System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {

	public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	}


} public class Main {

	public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	}


} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] Ws = W.split(" ");
		int N = Integer.parseInt(Ws[0]);
		int D = Integer.parseInt(Ws[1]);

		double x = N/((2.0*D)+1);
		long ans = (long)x;
		if(x-ans > 0){
			ans++;
		}

		System.out.println(ans);

	}


}
