public class Recursion_Debug {

	public static void printTabs(int count)
	{
		for(int i=0; i< count; i++)
			System.out.print("\t");
	}

   public static void mystery1(int a, int b, int depth) 
   {
		printTabs(depth);
	 	System.out.print("mystery1: a=" + a + "  b=" + b);
      if (a <= b) {
            int m = (a + b) / 2;
				System.out.println("\tm=" + m);
				
				printTabs(depth);
            System.out.println("PRINT: [" + m + " ]");
            mystery1(a, m-1, depth+1);
            mystery1(m+1, b, depth+1);
        }
		  else
		  {
		  	  System.out.println("\tDEAD END");
			  depth--;
		  }
    }

  
    public static void main(String[] args) {
        int N = 5; 
        mystery1(0, N, 0);
        System.out.println();
    }

}



