public static int recursive(int[] a, int keyword, int low, int high) {
		
		if (low >= high) {
			if (keyword == a[low]) {
				return low;
			} else {
				return -low-1;
			}
		}

//		try {
//			Thread.sleep(1000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		System.out.println("low = "+ low + ", high = "+high);

		int mid = (high - low)/2+low;
		if (a[mid]==keyword) {
			return mid;
		} else if (a[mid]<keyword) {
			return recursive(a, keyword, mid+1, high);
		} else {
			return recursive(a, keyword, low, mid); //using mid-1 is also correct! 
		}
		
	}