private int findBinary(int val, int low, int up, boolean index) {
		Integer sel = (up + low) / 2;
		Integer curr = arr[sel];
		// System.out.printf("Sel %d, Curr %d, Low %d, Up %d\n", sel, curr, low,
		// up);
		if (curr == null || idx == 0 || low > up) {
			return index ? low : -1;
		} else if (curr == val) {
			return sel;
		}
		low = curr < val ? sel + 1 : low;
		up = curr > val ? sel - 1 : up;
		return findBinary(val, low, up, index);
	}