private int binarySearch(int[] A,int b, int e, int target)
	{
		if (b == e) return -1;
		if (b == e + 1) 
		{
			if (A[b] == target) return b;
			else return -1;
		}
		int mid = (b + e ) /2;
		if (A[mid] < target) return binarySearch(A, mid + 1, e, target);
		int rt =binarySearch(A, b, mid, target);
		if (rt != -1) return rt;
		if (A[mid] ==  target) return mid;
		else return -1;
	}