import java.util.*;

class Main {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       long N = sc.nextLong();
       long D = sc.nextLong();
       
       long m = N/(2*D+1);
       if(N%(2*D+1)!=0) {
       	m=m+1;
       }
       System.out.println(m);	
   }
}
        import java.util.*; util.* java class Main {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       long N = sc.nextLong();
       long D = sc.nextLong();
       
       long m = N/(2*D+1);
       if(N%(2*D+1)!=0) {
       	m=m+1;
       }
       System.out.println(m);	
   }
} Main public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       long N = sc.nextLong();
       long D = sc.nextLong();
       
       long m = N/(2*D+1);
       if(N%(2*D+1)!=0) {
       	m=m+1;
       }
       System.out.println(m);	
   } main {
       Scanner sc = new Scanner(System.in);
       long N = sc.nextLong();
       long D = sc.nextLong();
       
       long m = N/(2*D+1);
       if(N%(2*D+1)!=0) {
       	m=m+1;
       }
       System.out.println(m);	
   } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long N = sc.nextLong(); N sc.nextLong() sc.nextLong sc long D = sc.nextLong(); D sc.nextLong() sc.nextLong sc long m = N/(2*D+1); m N/(2*D+1) N (2*D+1) 2*D 2 D 1 if(N%(2*D+1)!=0) {
       	m=m+1;
       } N%(2*D+1)!=0 N%(2*D+1) N (2*D+1) 2*D 2 D 1 0 {
       	m=m+1;
       } m=m+1 m m+1 m 1 System.out.println(m) System.out.println System.out System System.out m String[] args args
import java.util.*;

class Main {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       long N = sc.nextLong();
       long D = sc.nextLong();
       
       long m = N/(2*D+1);
       if(N%(2*D+1)!=0) {
       	m=m+1;
       }
       System.out.println(m);	
   }
}
       
