Implement Upper Bound Binary Search