def binary_search_right_most(nums, target):
first, last = 0, len(nums)
stated = False
while first < last:
midpoint = (first + last) // 2
if nums[midpoint] <= target:
if nums[midpoint] == target:
stated = True
first = midpoint + 1
else:
last = midpoint
return last - 1 if stated else -1
arr = [0, 0, 0, 1, 1, 1, 2, 3, 4, 4, 5, 5, 5, 5]
print(binary_search_right_most(arr, 4)) # output >>> 9
print(binary_search_right_most(arr, 6)) # output >>> -1