# Function to find the smallest letter greater than the target
def find_smallest_letter_greater_than_target(letters, given_letter):
left, right = 0, len(letters) - 1
result = letters[0] # Default to the first letter
while left <= right:
mid = left + (right - left) // 2
if letters[mid] > given_letter:
result = letters[mid]
right = mid - 1 # Narrow down to the left half
else:
left = mid + 1 # Narrow down to the right half
return result
letters = ['c', 'e', 'k', 'm']
given_letter = 'd'
result = find_smallest_letter_greater_than_target(letters, given_letter)
print(f"The smallest letter greater than '{given_letter}' is: {result}")
'''
run:
The smallest letter greater than 'd' is: e
'''