import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws FileNotFoundException {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	}
} import java.io.FileNotFoundException; FileNotFoundException java.io import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) throws FileNotFoundException {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	}
} Main public static void main(String[] args) throws FileNotFoundException {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	} main {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int D = sc.nextInt(); D sc.nextInt() sc.nextInt sc if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		} N%(2*D+1)==0 N%(2*D+1) N (2*D+1) 2*D 2 D 1 0 {
			System.out.println(N/(2*D+1));
		} System.out.println(N/(2*D+1)) System.out.println System.out System System.out N/(2*D+1) N (2*D+1) 2*D 2 D 1 {
			System.out.println(N/(2*D+1)+1);
		} System.out.println(N/(2*D+1)+1) System.out.println System.out System System.out N/(2*D+1)+1 N/(2*D+1) N (2*D+1) 2*D 2 D 1 1 String[] args args public class Main {
	public static void main(String[] args) throws FileNotFoundException {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	}
} public class Main {
	public static void main(String[] args) throws FileNotFoundException {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	}
} Main
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws FileNotFoundException {

		//    	File file = new File("src/in.txt");
		//    	Scanner sc = new Scanner(file);

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int D = sc.nextInt();


		if(N%(2*D+1)==0){
			System.out.println(N/(2*D+1));
		} else {
			System.out.println(N/(2*D+1)+1);
		}

	}
}
