Generalised Binary Search